一、工具对比
HTTP |
HTTPS |
Rewrite |
Map Local |
GUI |
开源 |
控制台 |
WEB |
API |
|
Charles |
是 |
是 |
是 |
是 |
应用GUI |
否 |
否 |
否 |
否 |
mitmproxy |
是 |
是 |
是 |
是 |
webGUI |
是 |
是 |
是 |
是 |
mitmproxy git地址:https://github.com/mitmproxy/mitmproxy
mitmproxy 说明文档:https://docs.mitmproxy.org/stable/
二、安装
1、工具安装
1、安装
% pip install mitmproxy或 brew install mitmproxy
% mitmproxy –version
出现以上信息表明安装成功。
2、证书安装
请先在抓包终端配置代理。
同charles,证书下载地址:http://mitm.it
三、支持模式
mitmproxy 提供了三个命令,启动模式不同:
- mitmproxy -> 提供一个命令行界面(该命令不支持windows)。
- mitmdump -> 提供一个简单的终端输出。
- mitmweb -> 提供一个浏览器界面。
四、使用说明
1、mitmproxy
以命令行界面方式提供流量查看
启动命令
% mitmproxy -p 端口号
参数说明
- -p:指定监听端口,设置代理的端口号
命令行界面
输入C,选择browser.start
% mitmproxy -p 443
#本地代理设置为443即可抓包。
#确认安装证书后,抓包
注:界面同时命令行,如对包数据进行过滤:按f
快捷键设置过滤条件view_filter
这个Option.
知识点:~u mitm
是Filter expressions
:~u regex
,用来过滤URL符合regex正则表达式的网络请求;可以按“?”
跳转到Help界面
查看全部的Filter expressions
2、mitmweb
以WEB页面的方式提供流量查看
启动命令
% mitmweb -p 端口号
#如不输入-p 端口号,即默认端口8080
模拟器设置代理:
参数说明
- -p:指定监听端口
WEB界面
#web抓包内容查看
3、mitmdump
类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量
启动命令:
% mitmdump -p 8888 -w package.txt
Proxy server listening at http://*:8888参数说明:
- -p:指定监听端口
- -w:输出流到文件
文件解析:
可通过mitmproxy提供的web端进行解析,选择mitmproxy->Open…
脚本交互模式
% mitmdump -s filter.py -p 8999
Loading script filter.py
Proxy server listening at http://*:8999
示例1:
解析接口(/getHomePageHttp/1.0)返回中的图片链接
示例2:
修改接口(/getHomePageHttp/1.0)服务端返回内容
示例3:
Mock接口(serch_keywords/1.0)返回内容
更多插件示例:
https://docs.mitmproxy.org/stable/addons-examples/#events-http-specific
五、应用场景
1、验证接口返回链接是否有效
2、项目切换域名,可对老域名进行监控
3、接口可靠性
4、与其他工具进行集成,实现抓包、Mock、Host配置等。如STF