目录
介绍
mitmproxy是一款支持拦截HTTP和HTTPS请求和响应以及修改请求和响应的交互式中间人代理工具。同时它提供了Python API给开发者编写插件用来自定义对流量进行处理和修改。
官网
mitmproxy 官网:https://www.mitmproxy.org/
mitmproxy 官方文档:https://docs.mitmproxy.org/stable/
mitmproxy 官方脚本 demo:https://docs.mitmproxy.org/stable/addons-examples/
环境准备
- win10 安装mitmproxy(需要Python3环境)
pip install mitmproxy
- win10安装证书
- 在cmd执行mitmdump,将会在用户目录看见.mitmproxy,路径C:\Users\xxx\.mitmproxy
- 在.mitmproxy目录找到CA证书,如下图所示
- 双击mitmproxy-ca.p12进入导入证书的页面,点击“下一步”
- 不用输入密码,直接“下一步”
- 选择“将所有的证书都放入下列存储”,接着选择“受信任的根证书颁发机构”
- 最后,弹出警告窗口,直接点击“是”
- android安装证书
- 检查pc端C:\Users\xxx\.mitmproxy是否已经存在,若不存在执行mitmdump生成mitmproxy证书
- 在pc端C:\Users\xxx\.mitmproxy进入cmd,执行下方命令
#PEM或者DER格式均可。 #如果是PEM格式的: openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem -noout c8750f0d # 如果是DER格式的: openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer -noout c8750f0d #将mitmproxy-ca-cert.pem重命名位 c8750f0d.0
-
电脑usb连接手机,将证书安装到手机根目录
#传入手机 adb push c8750f0d.0 /sdcard adb shell su #挂载系统目录为可写 mount -o rw,remount / 或者 mount -o remount,rw /system mv /sdcard/c8750f0d.0 /system/etc/security/cacerts #修改证书权限 chmod 644 /system/etc/security/cacerts/c8750f0d.0
使用
- 启动
- cmd下mitmweb,默认端口是8080
- cmd下mitmweb -p 8999,端口为8999
- 浏览器将自动打开一个新的页面http://127.0.0.1:8081/#/flows
- cmd下将出现
-
Web server listening at http://127.0.0.1:8081/ Proxy server listening at http://*:8080
-
- 手机配置环境
- 设置手机与pc端在同一网络,并设置手机代理为pc端ip,端口设置为与启动mitmweb时相同的端口
- 测试是否可以抓取百度https请求,在网页端http://127.0.0.1:8081/#/flows可以看到请求包
-
mitmproxy 工具有以下三部分组成
- mitmproxy -> 命令行工具(win不支持)
- mitmdump -> 加载 python 脚本
- mitmweb -> web 界面工具
常用参数
-h 帮助信息
-p 修改监听端口(默认监听端口8080)
-s 加载 python 脚本
-
mitmweb页面介绍
-
点击file
-