一、安装
https://www.mitmproxy.org/
二、使用
1、命令行
mitmproxy win不支持
mitmproxy -h 查看帮助文档
mitmproxy -p 8999 指定监听端口8999
打开电脑端代理 指定代理为127.0.0.1 8999
证书安装:
开启代理
网络internet选项中设置代理
浏览器端访问mitm.it 下载证书进行安装
查看信息:
上下滑动查看
鼠标单击一条信息 可查看具体内容
q退出详细信息界面
信息中搜索:
f键
退出:
q 退出
y yes
2、web端工具
启动:
mitmweb -p 8999
在浏览器端可以拦截请求:
在第二栏输入的内容 会被拦截
第一栏输入的内容,可以搜索请求信息
3、mitmdump
默认监控8080端口
-p 指定监听端口
-s python文件 加载python脚本
录制与回放
录制 mitmdump -w tmp
-w 指定写入的文件
过滤 mitmdump -nr tmp -w tmp2 "~s hogwarts"
-n 不开启代理
-r 读取文件
~s 过滤请求内容 过滤表达式内容参考文档: https://docs.mitmproxy.org/stable/concepts-filters/
回放 mitmdump -nC tmp2
-C回放
maplocal
例子1:
创建python文件
使用命令行
mitmdump -p 8999 -s E:\py1\mitm_proxy\request_demo.py
例子2:
对百度进行maplocal
脚本中设置了当url为百度首页的时候,自定义一个response,返回内容为helloworld
命令行启动
mitmdump -p 8999 -s E:\py1\mitm_proxy\maplocal_baidu.py
在浏览器中访问百度首页,显示效果为:
例子3:
对雪球app进行maplocal
quote.json 为雪球的一个信息json文件
命令行启动:
mitmdump -p 8999 -s E:\py1\mitm_proxy\maplocal_xueqiu.py
cmd中访问:
curl https://www.baidu.com/***/quote.json -x 127.0.0.1:8999
由于请求中带有quote.json 所以也会返回本地quote.json内容
在模拟器上访问雪球app会发现显示内容也是本地的quote.json内容
rewrite
创建py文件:
首先获取content内容,将content内容保存到data中,content原来为二进制,通过json.loads将其转换成json格式,字典格式
通过json格式修改内容 具体修改方法参考文档:https://github.com/json-path/JsonPath
然后通过json.dumps将字典格式转换成text格式并修改值
命令行运行:
mitmdump -p 8999 -s E:\py1\mitm_proxy\rewrite_xueqiu.py
在模拟器查看雪球app:
maplocal和rewrite区别