mitmproxy 是一组工具,为 HTTP/1、HTTP/2 和 WebSockets 提供交互式、支持 SSL/TLS 的拦截代理。
mitmproxy 项目的工具是一组公开通用底层功能的前端。当我们谈论“mitmproxy”时,通常指的是这三个工具中的任何一个——它们只是同一核心代理的不同前端。
mitmproxy
是一个交互式的、支持 SSL/TLS 的拦截代理,具有用于 HTTP/1、HTTP/2 和 WebSockets 的控制台界面。
mitmdump
是 mitmproxy 的命令行版本。类似于 HTTP 版的 tcpdump。
mitmweb
是 mitmproxy 的 Web 界面。
可以在 mitmproxy 网站上找到分发包。开发信息和源代码可以在我们的 GitHub 代码库中找到。
mitmproxy 是一款控制台工具,允许交互式地检查和修改 HTTP 流量。它与 mitmdump 的不同之处在于,所有流量都保存在内存中,这意味着它旨在用于获取和处理较小规模的样本。使用 ? 快捷键可以从任何 mitmproxy 屏幕查看上下文相关的文档。
mitmweb 是 mitmproxy 的基于 Web 的用户界面,允许交互式地检查和修改 HTTP 流量。与 mitmproxy 类似,它与 mitmdump 的不同之处在于,所有流量都保存在内存中,这意味着它旨在用于获取和处理较小规模的样本。
Mitmweb 目前处于测试阶段。我们认为它目前在 UI 中展示的所有功能都已稳定,但仍缺少许多 mitmproxy 的功能。
mitmdump 是 mitmproxy 的命令行伴侣。它提供类似 tcpdump 的功能,让您可以查看、记录并以编程方式转换 HTTP 流量。完整文档请参见 --help 参数的输出。
示例:保存流量
mitmdump -w outfile
以代理模式启动 mitmdump,并将所有流量写入 outfile。
过滤已保存的流量
mitmdump -nr infile -w outfile "~m post"
启动 mitmdump 但不绑定代理端口 (-n),从 infile 读取所有流量,应用指定的过滤表达式(仅匹配 POST 请求),然后写入 outfile。
客户端重放
mitmdump -nC outfile
启动 mitmdump 但不绑定代理端口 (-n),然后重放 outfile 中的所有请求(-C 文件名)。标志以显而易见的方式组合,因此您可以从一个文件重放请求,并将生成的流写入另一个文件:
mitmdump -nC srcfile -w dstfile
有关更多信息,请参阅客户端重放部分。
运行脚本
mitmdump -s examples/simple/add_header.py
这将运行 add_header.py 示例脚本,该脚本只会向所有响应添加新的标头。
脚本化数据转换
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile
此命令从 srcfile 加载流,根据指定的脚本对其进行转换,然后将其写回 dstfile。