以前自己做测试的时候经常使用python requests,发送各种http请求非常方便。但是最近升级到python3使用requests之后,发现在我的请求发出去之前,requests会做一些解码/目录压缩之类的工作。
举几个例子:
/test.php?a=%61%62%63%64
使用requests发出请求后,抓包会发现实际请求中的参数被解码,变成了如下内容:
/test.php?a=abcd
另外一个例子:
aa.com/abcd/../123/../test.php
最后发出去的请求,path变成了如下内容:
aa.com/test.php
本来是要使用requests发各种攻击请求,然后观察效果的,结果最后发出去的内容都给我解码了。
因为太习惯使用python reqeusts了,也不想换其他的库,所以简单该了下源码解决上面的问题。
python3.8/site-packages/urllib3/util/url.py 注释掉如下几行
python3.8/site-packages/requests/models.py 做如下修改