mitmproxy 一款强大的 HTTP(S) 拦截与调试工具

发布于:2025-04-18 ⋅ 阅读:(26) ⋅ 点赞:(0)

一、什么是 mitmproxy?

mitmproxy 是一个支持 SSL/TLS 的交互式代理工具集,能够拦截、查看、修改 HTTP 与 HTTPS 请求和响应流量。其核心功能包括:

  • 拦截并修改 HTTP & HTTPS 请求/响应
  • 保存完整的 HTTP 会话以便后续重放与分析
  • 重放客户端请求或服务端响应
  • 提供反向代理、透明代理等多种模式
  • 使用 Python 脚本动态处理流量
  • 自动生成 SSL/TLS 证书进行加密通信拦截

二、三大核心工具介绍

mitmproxy 实际上是由三个功能前端组成,它们共享同一个核心处理引擎,适用于不同的使用场景:

1. mitmproxy:终端交互界面

这是 mitmproxy 的主工具,拥有一个基于终端的交互式 UI,便于查看和修改每一条 HTTP 请求。它会将所有流量保存在内存中,适合对小规模样本进行深入分析。

📌 快捷键提示:在界面中按下 ? 即可查看当前可用的快捷键。

2. mitmweb:基于浏览器的可视化界面

mitmweb 是 mitmproxy 的 Web UI 版本,适合希望在浏览器中可视化查看和操作流量的用户。虽然目前还在 beta 阶段,但已具备稳定的核心功能。

使用方式非常简单:

mitmweb

然后浏览器访问 http://localhost:8081 进入界面。

3. mitmdump:命令行版本

mitmdump 是命令行形式的 mitmproxy,类似于 tcpdump,用于程序化地查看、记录和处理 HTTP 流量。非常适合脚本化和自动化场景。

三、实用示例速览

下面是一些典型的 mitmdump 用法,帮助你快速掌握它的实战能力。

3.1.保存流量

mitmdump -w outfile

启动代理并将所有请求保存到 outfile 文件中。

3.2.过滤 POST 请求并保存

mitmdump -nr infile -w outfile "~m post"

从已有的流量文件 infile 中读取,只保留 POST 请求,并输出到 outfile

3.3.客户端请求重放

mitmdump -nC outfile

outfile 文件中读取请求并进行重放,-n 表示不监听代理端口。

支持组合使用:

mitmdump -nC srcfile -w dstfile

即重放 srcfile,同时将重放后的新流量保存到 dstfile

3.4.运行自定义脚本

mitmdump -s examples/simple/add_header.py

执行一个 Python 脚本,对所有响应添加自定义 Header。非常适合对请求做批量处理或数据清洗。

3.5.使用脚本进行流量转换

mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile

srcfile 加载请求流量,使用脚本进行处理后保存到 dstfile

四、为什么选择 mitmproxy?

  • 强大的调试能力:适用于前后端联调、API 流量追踪、安全审计。
  • 可扩展性高:支持使用 Python 编写脚本扩展功能。
  • 支持 HTTPS 拦截:自动生成根证书,方便测试 HTTPS 请求。
  • 多界面支持:命令行、终端交互、Web UI 多种方式满足不同需求。

五、 安装方式

可直接访问官网下载安装包:

六、总结

无论你是前端调试、接口测试、安全研究,还是流量采集分析,mitmproxy 都是一款不可多得的强力工具。它不止是“抓包工具”,更是一款可编程的流量分析平台。如果你还没用过 mitmproxy,不妨现在就试试它强大的魔法。


网站公告

今日签到

点亮在社区的每一天
去签到