mitmproxy介绍
概述
mitmproxy一个免费开源的 交互式https代理
可以用于抓取http的包,他支持windows、linux多平台,还可以通过Python库的方式启动去实现更灵活的逻辑。
安装
linux
pip3 install mitmproxy |
windows
官网下载即可mitmproxy - an interactive HTTPS proxy
启动
mitmproxy有web界面和命令行界面,这里主要介绍web界面
启动命令行界面
mitmproxy --listen-port 8080 |
启动web界面
mitmweb --listen-port 8080 |
如果需要将流量转发到上游的其他代理(比如clash)
可以使用如下参数启动
mitmweb --listen-port 8080 --mode upstream:http://127.0.0.1:7890 |
安装根证书
如果要解析https流量,需要使用到根证书。
需要在web界面上下载证书(File → Install Certificates),按照上边的提升进行安装即可
常用配置
HTTP代理模式
可以通过http协议接收流量
Sock5代理模式
可以通过sock5协议接收流量
Upstream Proxy模式
转发到mitmproxy的流量会进一步转发到上游
Reverse Proxy模式
转发到mitmproxy的流量会转发到指定的服务器上
Transparent模式
透明代理模式,系统上的所有流量都会转到mitmproxy上
DNS 服务
可以接管dns解析
功能用法
监视流量
如图所示,可以查看所有经过代理的流量
数据导出
可以导出数据为curl 请求格式,文本格式等
数据修改
可以在界面上暂停并编辑数据后再发送,或者构建一个新包重放
参考资料
mitmproxy - an interactive HTTPS proxy
总结
- mitmproxy是一个http协议的抓包工具,他可以通过sock5,http接口去代理http/https请求
- 当需要解析https请求的时候,需要安装根证书
- 支持设置上游代理或者作为透明代理、作为反向代理
- 支持对流量包的查看、重放,修改,并可以导出为各种格式