Mitmproxy教程

官方网址

简介

一款基于Python实现的跨平台的流量分析工具。可以通过控制台来完成相关的操作,能够对流量进行拦截,检测,修改,回放等。并且支持https。

该工具的使用是完全免费的。

该工具通过设置代理的方式完成对网络流量的监控和操作。

安装

Mitmproxy的安装是非常容易的。

使用pip安装

pip install mitmproxy

推荐使用Python 2.7。其他版本不保证能够正常。

使用二进制包安装

下载二进制包安装即可。

Mac上使用homebrew安装1

brew install mitmproxy

基本使用

一旦安装成功,就可以通过命令行来启动工具,开始启动代理进行抓包。

启动命令:

mitmproxy -b PROXY_IP_ADDR -p PROXY_PORT
参数 说明
-b 代理服务器地址(一般的为PC本机的地址)
-p 代理服务端口号

启动之后的界面如下图 mitmproxy启动图示

如果你熟悉LinuxVim,那么你在使用这个工具的时候会感到无比的亲切。常用快捷键如下表:

快捷键 操作
h/j/k/l 对应方向键左/下/上/右
q 退出到上一界面(退出程序也是q)
Enter Follow一个请求到具体内容界面
Tab 切换不同的Tab,如“Request”,“Response”,“Detail”
e 编辑请求
g 回到第一行请求
G 回到最新/后一条请求
? 帮助
C 清除抓包结果
m 在Response比较乱的时候,按下m选择格式化语法,例如再次按下s便展示json格式
i 拦截流量包

调试https

https的调试需要安装一个自定义的SSL证书,以便让mitmproxy对所拦截的流量进行解密。

启动mitmproxy的时候需要额外添加一个参数,如下:

mitmproxy -a PROXY_IP_ADDR -p PROXY_PORT --no-upstream-cert

同时需要在Android机器上安装SSL证书2

1. homebrew的相关教程参考这里
2. 一般的,会在安卓手机的设置——安全与隐私——设备管理与凭证——安装,选择相应的证书即可完成安装