解决requests自动进行url解码的问题

本文介绍了一位开发者在升级到python3后遇到requests库在发送HTTP请求前自动解码URL参数和规范化路径的问题,这对其进行安全测试造成困扰。为了解决这个问题,作者选择直接修改requests库的源码,注释掉了`urllib3.util.url`和`requests.models.py`中相关的代码段,以阻止这种行为。文章适合对requests库有深入使用需求的Python开发者阅读。
摘要由CSDN通过智能技术生成

以前自己做测试的时候经常使用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  做如下修改

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值