介绍
技术 |
特性 |
适用场景 |
说明 |
mitmproxy |
跨平台、基于python |
抓包 |
官网 Doc Github 示例 |
安装
pip3 install mitmproxy
使用
启动代理
mitmproxy mitmproxy -p 8888mitmdumpmitmdump -s script.pymitmweb
设置代理
设置 Safari代理【偏好设置】->【高级】->【代理:更改设置】设置 Chrome 代理【偏好】->【高级】->【系统】->【打开您计算机的代理设置】
配置https
1. 打开 http://mitm.it/,安装相应证书。2. 手机根证书推送
操作
按键 |
说明 |
q |
退出(相当于返回键,可一级一级返回) |
d |
删除当前(黄色箭头)指向的链接 |
D |
恢复刚才删除的请求 |
G |
跳到最新一个请求 |
g |
跳到第一个请求 |
C |
清空控制台(C是大写) |
i |
可输入需要拦截的文件或者域名(逗号需要用\来做转译,栗子:feezu.cn) |
a |
放行请求 |
A |
放行所有请求 |
? |
查看界面帮助信息 |
^ v |
上下箭头移动光标 |
enter |
查看光标所在列的内容 |
tab |
分别查看 Request 和 Response 的详细信息 |
/ |
搜索body里的内容 |
esc |
退出编辑 |
e |
进入编辑模式 |
Java程序抓包
配置java证书信任
keytool -importcert -alias mitmproxy -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -trustcacerts -file ~/.mitmproxy/mitmproxy-ca-cert.pem
Java抓包调试
public void beforeTest(){ logger.info("设置抓包代理......"); System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("https.proxyPort", "8080");}
Java代理设置
System.setProperty("http.proxyHost", "127.0.0.1");System.setProperty("http.proxyPort", "9876"); System.setProperty("https.proxyHost", "127.0.0.1");System.setProperty("https.proxyPort", "9876");System.setProperty("proxyHost", "127.0.0.1");System.setProperty("proxyPort", "9876"); System.setProperty("socksProxyHost", "127.0.0.1");System.setProperty("socksProxyPort", "1080");
Java通过JVM启动设置代理
-DproxyHost=127.0.0.1 -DproxyPort=9876
参考
- App爬虫神器mitmproxy和mitmdump的使用
- 中间人攻击mitmproxy 使用指南
- mitmproxy安装与使用 (抓包,中间人代理工具、支持SSL)
- Java 配合 mitmproxy HTTPS 抓包调试
安全期查询