mitmproxy 是什么
mitmproxy 是开源的中间人代理工具集,用 Python 编写,提供交互式界面、无界面 dump 与 Web 界面三种形态,并支持用 Python 脚本自动处理流量。测试中常把它作为客户端代理,观察 App 或浏览器的明文请求,用于授权范围内的接口调试、请求改写验证与证据留存。
基本信息
| 程序形态 | mitmproxy(交互)/ mitmdump(无界面)/ mitmweb(Web 界面) |
|---|---|
| 常用参数 | -p 监听端口 / -w 保存流量 / -r 读取流量文件 / -s 加载脚本 |
| 证书 | CA 证书只装在测试设备(浏览器、模拟器、测试机) |
| 依赖 | Python 3,pip install mitmproxy |
| 使用边界 | 仅代理授权范围内的测试终端流量 |
典型使用场景
- 移动端接口分析:App 走系统代理后观察明文请求与响应结构
- 抓取复现证据:把完整请求响应存成流量文件,供报告引用与复测比对
- 请求改写验证:临时修改参数或头部,验证服务端校验是否缺失
- 批量统计:用脚本统计接口数量、响应码分布与敏感字段出现情况
- 离线分析:对已保存的流量文件重放与二次处理,避免反复打扰生产系统
使用示例
使用示例
mitmproxy -p 8080 # 交互界面,方向键浏览流量
mitmdump -p 8080 -w flows.mitm # 静默运行并保存全部流量
mitmdump -nr flows.mitm -s collect.py # 离线读取 + 脚本统计
mitmdump --listen-host 127.0.0.1 -p 8080 # 只监听本机,避免被他人借用
cat flows.mitm | wc -c # 粗看文件体积,判断是否需分段常用组合速查
| 需求 | 命令要点 | 说明 |
|---|---|---|
| 实时观察 | mitmproxy -p 8080 | 键盘操作,适合现场排查 |
| 留证据 | mitmdump -w flows.mitm | 文件含凭据,按敏感数据处理 |
| 离线重放 | -nr flows.mitm | 不新增对生产系统的请求 |
| 自动处理 | -s 脚本.py | 脚本可过滤、统计、改写 |
| 界面展示 | mitmweb | 浏览器里查看,注意监听地址 |
代理监听不要绑定 0.0.0.0:同网段任何客户端都可能借用你的出口,流量与源 IP 会记到你的名下。默认只监听回环地址,确需局域网代理时用防火墙限定来源。
部分 App 启用证书固定(SSL Pinning),装 CA 后仍无法解密;这属于明确的防护结论,应作为证据记录,而不是绕过目标。