工具使用要点60 条

mitmproxy 使用要点

mitmproxy 提供可脚本化的代理:mitmproxy 交互、mitmdump 无界面、脚本处理流量;用于授权范围内的接口调试与证据整理,证书只装测试设备。

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 后仍无法解密;这属于明确的防护结论,应作为证据记录,而不是绕过目标。

易错点

  • 代理端口对外开放被他人使用:来源 IP 归属混乱,攻击流量可能记到你名下;限定监听地址与来源网段
  • 流量文件内含凭据仍随意外发:Cookie 与令牌泄露;文件按敏感级别加密归档,禁止走即时通讯
  • CA 证书装进生产终端后未卸载:长期存在中间人风险;测试结束后卸载并回收测试机
  • 抓包前未确认客户端是否走代理:数据没抓到就反复重试,浪费时间;先确认代理生效再分析

数据来源与参考

  • mitmproxy 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌