python拦截修改数据包_会Python?那么你一定要试一试mitmproxy

mitmproxy是一款强大的Python工具,用于HTTP、TCP和Websocket的抓包及二次开发。它可以拦截请求,修改响应内容,甚至进行TCP和Websocket的数据操作。通过自定义Python脚本,你可以实现如请求转发、数据存储、异常邮件通知等功能。它提供了丰富的生命周期钩子,包括HTTP、TCP和Websocket的不同阶段,方便进行各种定制操作。
摘要由CSDN通过智能技术生成

d8e1fa5583b502aaa4f2cdc0a5d477e4.gif

    mitmproxy 是一款工具,也可以说是 python 的一个包,使用这个工具可以在命令行上进行抓包(现在也可以在web页面上查看上抓的数据包了),还可以对所抓到的包进行脚本处理,非常有用。

    和 fiddler 或charles 等接口抓包工具相比,mitmproxy 不仅可以截获请求帮助开发者查看、分析接口报文,更可以通过自定义Python脚本进行二次开发, 获取更多的内容和能力。

    比如,拦截 url 的请求,将返回内容置空,并将真实的返回内容存到数据库或者本地文件;拦截过程中出现异常时发出邮件通知;和反向代理一样,将指向某个服务地址的请求,转发到另外的服务器上。

    下图,mitmproxy在网络请求中所处的位置,就能大致理解为什么可以做上面的内容了

fb547ba47efcfc07b237553880a9fb7d.png

  • 安装

sudo pip3 install mitmproxy

  • 运行

要启动 mitmproxy 用mitproxy, mitmdump, mitmweb, 建议用你mitmweb, 它提供了一个web页面,来查看拦截的请求, 运行mitmweb,会启动一个web服务和一个proxy服务,默认端口分别是8081和8080

491ee788e1d1c98fa6e97924b78fc179.png

访问Web  Server,可以实时看到发生的请求,并通过 GUI 交互来过滤请求,查看请求数据

注:如果需要修改默认端口  ,通过--web-port和-p两个参数即可,比如web端口是8999,proxy端口是8899

mitmweb --web-port 8999 -p 8899

设置好后,在手机端或者浏览器里,设置代理地址是mitmproxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值