简介
mitmproxy
是一组工具,可为HTTP/1
,HTTP/2
和WebSockets
提供交互式的,具有SSL/TLS
功能的拦截代理(可以对Web、Mobile进行抓包)。
mitmproxy
相比Charles
、fiddler
的优点在于它可以命令行方式或脚本的方式进行mock
数据,还可以对请求数据进行二次开发,进入高度二次定制。
详情可参考:mitmproxy 官网 和 mitmproxy 官方文档
安装
Mac 安装
直接命令行安装:brew install mitmproxy
或者直接下载二进制文件进行安装 mitmproxy.org
Windows 安装
直接下载exe
文件进行安装 mitmproxy.org
安装好后查看是否配置成功:mitmproxy --version
安装证书
安装证书之前首先要启动mitmproxy
: mitmproxy -p 8899
浏览器代理配置
Chrome 已安装插件(没有VPN可能安装不了,推荐使用Firefox) Proxy SwitchyOmega
Firefox 已经安装插件 Proxy SwitchyOmega
添加新的代理(端口要与上边的启动的端口一致):
配置后的浏览器打开mitm.it,根据提示安装相对应的证书并且要信任证书
用法
mitmproxy
工具有以下三部分组成:
mitmproxy
是具有SSL/TLS
功能的交互式拦截侦听代理,具有用于HTTP/1
,HTTP/2
和WebSockets
的控制台界面。
mitmweb
是用于mitmproxy
的基于Web
的界面。
mitmdump
是mitmproxy
的命令行版本。将tcpdump
用于HTTP
。
常用参数
-h 帮助信息
-p 修改监听端口,默认监听端口8080
-s 加载 python 脚本
mitmproxy
mitmproxy是一个控制台工具,它允许交互式检查和修改HTTP流量
启动代理:mitmproxy -p 8899
通过鼠标点击查看请求详情:
通过q
返回到主界面,可通过f
添加过滤条件,最后可以通过q
关掉代理,详情操作可参考: doc
mitmweb
mitmweb
是mitmproxy
基于Web的用户界面
启动代理:mitmweb -p 8899
具体功能根据页面自己摸索吧!
mitmdump
mitmdump是mitmproxy的命令行伴侣。它提供了类似tcpdump的功能,可让您查看,记录和以编程方式转换HTTP流量,即可对接 python 对请求进行处理,因此就不用手动截获和分析 http 请求和响应,只需要写好请求和响应的处理逻辑即可。请参阅–help标志输出以获取完整的文档。
录制与回放
录制:mitmdump -w 文件名
过滤:mitmdump -nr 文件名 -w 文件名2 "~s chenshifeng"
回放:mitmdump -nc 文件名
参数
-s test.py # 加载脚本
-n 不启动代理
-r 读取文件内容
-w 写入文件
~s 过滤响应数据
详情可参考:mitmdump -h
录制请求数据并保存到result.txt
文件:mitmdump -p 8999 -w result.txt
过滤保存的请求: mitmdump -nr result.txt -w filter_result.txt "~s kewords"
mitmdump 加载脚本拦截更改请求信息
例1:脚本(update_request.py
)更改response code
和response text
启动:mitmdump -p 8899 -s update_request.py
例2: 脚本(update.py
)修改返回特定的内容
例3:脚本(test.py)构造请求,拦截一个请求并调用你构造的请求