mitmproxy 是一个支持 SSL/TLS 的交互式代理工具集,能够拦截、查看、修改 HTTP 与 HTTPS 请求和响应流量。其核心功能包括:
mitmproxy 实际上是由三个功能前端组成,它们共享同一个核心处理引擎,适用于不同的使用场景:
mitmproxy
:终端交互界面这是 mitmproxy 的主工具,拥有一个基于终端的交互式 UI,便于查看和修改每一条 HTTP 请求。它会将所有流量保存在内存中,适合对小规模样本进行深入分析。
快捷键提示:在界面中按下 ?
即可查看当前可用的快捷键。
mitmweb
:基于浏览器的可视化界面mitmweb 是 mitmproxy 的 Web UI 版本,适合希望在浏览器中可视化查看和操作流量的用户。虽然目前还在 beta 阶段,但已具备稳定的核心功能。
使用方式非常简单:
mitmweb
然后浏览器访问 http://localhost:8081
进入界面。
mitmdump
:命令行版本mitmdump 是命令行形式的 mitmproxy,类似于 tcpdump,用于程序化地查看、记录和处理 HTTP 流量。非常适合脚本化和自动化场景。
下面是一些典型的 mitmdump 用法,帮助你快速掌握它的实战能力。
mitmdump -w outfile
启动代理并将所有请求保存到 outfile
文件中。
mitmdump -nr infile -w outfile "~m post"
从已有的流量文件 infile
中读取,只保留 POST 请求,并输出到 outfile
。
mitmdump -nC outfile
从 outfile
文件中读取请求并进行重放,-n
表示不监听代理端口。
支持组合使用:
mitmdump -nC srcfile -w dstfile
即重放 srcfile
,同时将重放后的新流量保存到 dstfile
。
mitmdump -s examples/simple/add_header.py
执行一个 Python 脚本,对所有响应添加自定义 Header。非常适合对请求做批量处理或数据清洗。
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile
从 srcfile
加载请求流量,使用脚本进行处理后保存到 dstfile
。
可直接访问官网下载安装包:
无论你是前端调试、接口测试、安全研究,还是流量采集分析,mitmproxy 都是一款不可多得的强力工具。它不止是“抓包工具”,更是一款可编程的流量分析平台。如果你还没用过 mitmproxy,不妨现在就试试它强大的魔法。