安装
- 安装python模块
pip install mitmproxy
- 安装完成后,系统将拥有
mitmproxy
、mitmdump
、mitmweb
三个命令,由于mitmproxy
命令不支持在 windows 系统中运行,我们可以拿mitmdump
测试一下安装是否成功,执行:
mitmdump --version
GitHub:https://github.com/mitmproxy/mitmproxy
证书配置&代理配置
web端
- 进入路径:C:\Users\Administrator\.mitmproxy,双击mitmproxy-ca.p12,一直下一步,到下图时选择将所有证书都放入下列存储,受信任的根证书颁发机构,导入成功。
- 手动设置代理
移动端
- WiFi中设置代理,代理服务器主机名为本机IP地址,端口没有自定义的话填8080
- 浏览器输入http://mitm.it安装证书,下载完成后安装证书
启动
要启动 mitmproxy 用 mitmproxy
、mitmdump
、mitmweb
这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同。
mitmweb
命令启动后,会提供一个 web 界面,用户可以实时看到发生的请求,并通过 GUI 交互来过滤请求,查看请求数据。形如:
mitmdump命令启动后,可以在控制台查看
自定义脚本
这是 mitmproxy 真正强大的地方。编写一个 py 文件供 mitmproxy 加载,文件定义了变量 addons,addons 是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。这些类,称为一个个 addon
,比如一个叫 Counter 的 addon:
import mitmproxy.http
from mitmproxy import ctx
class Counter:
def __init__(self):
self.num = 0
def request(self, flow: mitmproxy.http.HTTPFlow):
self.num = self.num + 1
ctx.log.info("We've seen %d flows" % self.num)
addons = [
Counter()
]
我们将脚本保存为addon.py
更多脚本见:https://github.com/mitmproxy/mitmproxy/tree/main/examples
再重新启动mitmproxy,mitmweb -s addons.py,会看到有类似这种日志