介绍、特征、工具以及示例

优质
小牛编辑
118浏览
2023-12-01

一、介绍

mitmproxy是一组工具,可为HTTP/1,HTTP/2WebSockets提供交互式的,具有SSL/TLS功能的拦截代理。

二、特征

  • 拦截HTTPHTTPS请求和响应并即时修改它们;
  • 保存完整的HTTP对话以供以后重播和分析;
  • 重播HTTP对话的客户端;
  • 重播先前记录的服务器的HTTP响应;
  • 反向代理模式将流量转发到指定的服务器;
  • macOSLinux上的透明代理模式;
  • 使用PythonHTTP流量进行脚本化更改;
  • 即时生成用于拦截的SSL/TLS证书
  • 查看更多……

三、3个强大的核心工具

mitmproxy项目的工具是一组暴露通用底层功能的前端。当我们谈论“ mitmproxy”时,我们通常指的是这三种工具中的任何一种-它们只是同一核心代理的不同前端。

  • mitmproxy 是具有SSL/TLS功能的交互式拦截侦听代理,具有用于HTTP/1,HTTP/2WebSockets的控制台界面。

  • mitmweb是用于mitmproxy的基于Web的界面。
  • mitmdumpmitmproxy的命令行版本。将tcpdump用于HTTP

分发包可以在mitmproxy网站上找到。开发信息和我们的源代码可以在我们的GitHub中找到 。

1、mitmproxy

mitmproxy

mitmproxy 是一个控制台工具,它允许交互式检查和修改HTTP流量。它与mitmdump的不同之处在于所有流都保存在内存中,这意味着它旨在获取和处理小样本。使用 ? 快捷键可在任何mitmproxy屏幕上查看上下文相关的文档。

2、mitmweb

mitmweb

mitmwebmitmproxy基于Web的用户界面,它允许交互式检查和修改HTTP流量。像mitmproxy一样,它与mitmdump的不同之处在于所有流都保存在内存中,这意味着它旨在获取和处理小样本。

Mitmweb目前处于测试阶段。我们认为它对于UI中当前公开的所有功能都稳定,但是仍然缺少许多mitmproxy的功能。

3、mitmdump

mitmdumpmitmproxy的命令行伴侣。它提供了类似tcpdump的功能,可让您查看,记录和以编程方式转换HTTP流量。请参阅--help标志输出以获取完整的文档。

a、示例:保存日志
mitmdump -w outfile

以代理模式启动mitmdump,并将所有日志写入outfile

b、过滤保存的请求
mitmdump -nr infile -w outfile "~m post"

在不绑定代理端口(-n)的情况下启动mitmdump,从infile中读取所有流,应用指定的过滤器表达式(仅匹配POST),然后写入outfile

c、客户端重播
mitmdump -nC outfile

启动mitmdump而不绑定到代理端口(-n),然后重播outfile(-C filename)中的所有请求。标志以明显的方式组合,因此您可以重播来自一个文件的请求,并将结果流写入另一个文件:

mitmdump -nC srcfile -w dstfile

有关更多信息,请参见客户端重播

d、运行脚本
mitmdump -s examples/simple/add_header.py

这将运行add_header.py示例脚本,该脚本仅向所有响应添加新的header

e、脚本化数据转换
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile

此命令从srcfile加载流,根据指定的脚本对其进行转换,然后将其写回到dstfile