介绍、特征、工具以及示例
一、介绍
mitmproxy
是一组工具,可为HTTP/1
,HTTP/2
和WebSockets
提供交互式的,具有SSL/TLS
功能的拦截代理。
二、特征
- 拦截
HTTP
和HTTPS
请求和响应并即时修改它们; - 保存完整的
HTTP
对话以供以后重播和分析; - 重播
HTTP
对话的客户端; - 重播先前记录的服务器的
HTTP
响应; - 反向代理模式将流量转发到指定的服务器;
macOS
和Linux
上的透明代理模式;- 使用
Python
对HTTP
流量进行脚本化更改; - 即时生成用于拦截的
SSL/TLS
证书 - 查看更多……
三、3个强大的核心工具
mitmproxy
项目的工具是一组暴露通用底层功能的前端。当我们谈论“ mitmproxy”
时,我们通常指的是这三种工具中的任何一种-它们只是同一核心代理的不同前端。
mitmproxy
是具有SSL/TLS
功能的交互式拦截侦听代理,具有用于HTTP/1,HTTP/2
和WebSockets
的控制台界面。mitmweb
是用于mitmproxy
的基于Web
的界面。mitmdump
是mitmproxy
的命令行版本。将tcpdump
用于HTTP
。
分发包可以在mitmproxy网站上找到。开发信息和我们的源代码可以在我们的GitHub中找到 。
1、mitmproxy
mitmproxy
是一个控制台工具,它允许交互式检查和修改HTTP
流量。它与mitmdump
的不同之处在于所有流都保存在内存中
,这意味着它旨在获取和处理小样本。使用 ?
快捷键可在任何mitmproxy
屏幕上查看上下文相关的文档。
2、mitmweb
mitmweb
是mitmproxy
基于Web
的用户界面,它允许交互式检查和修改HTTP
流量。像mitmproxy
一样,它与mitmdump
的不同之处在于所有流都保存在内存
中,这意味着它旨在获取和处理小样本。
Mitmweb目前处于测试阶段。我们认为它对于UI中当前公开的所有功能都稳定,但是仍然缺少许多mitmproxy的功能。
3、mitmdump
mitmdump
是mitmproxy
的命令行伴侣。它提供了类似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
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论