mitmproxy

介绍

技术特性适用场景说明
mitmproxy跨平台、基于python抓包官网 Doc Github 示例

安装

pip3 install mitmproxy

使用

启动代理
# 方式一:在8080端口上运行一个代理服务
mitmproxy 
## 或者指定端口
mitmproxy -p 8888

# 方式二:启动mitmdump,它也会监听8080端口
mitmdump
## 执行自定义脚本
mitmdump -s script.py

# 方式3:启动一个 web 界面,用户可以实时看到发生的请求,并通过 GUI 交互来过滤请求,查看请求数据
mitmweb

设置代理
设置 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证书信任
# Linux 一般在 JAVA_HOME/jre/lib/security/cacerts 下
# Mac 在 /Library/Java/JavaVirtualMachines/JAVA_HOME/Contents/Home/jre/lib/security/cacerts
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代理设置
// HTTP 代理,只能代理 HTTP 请求
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "9876");
 
// HTTPS 代理,只能代理 HTTPS 请求
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "9876");

// 同时支持代理 HTTP/HTTPS 请求
System.setProperty("proxyHost", "127.0.0.1");
System.setProperty("proxyPort", "9876");
 
// SOCKS 代理,支持 HTTP 和 HTTPS 请求
// 注意:如果设置了 SOCKS 代理就不要设 HTTP/HTTPS 代理
System.setProperty("socksProxyHost", "127.0.0.1");
System.setProperty("socksProxyPort", "1080");

Java通过JVM启动设置代理
-DproxyHost=127.0.0.1 -DproxyPort=9876

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MITMProxy 是一个强大的网络流量拦截和调试工具,它允许你拦截、修改和分析HTTP/HTTPS等网络请求与响应。通过 MITMProxy,你可以进行中间人攻击(Man-in-the-Middle, MITM)模拟,进行开发者测试、安全审计或网络监控。 **MITMProxy教程的基本步骤:** 1. **安装与启动**: - 安装最新版本的MITMProxy:从其官方网站下载适用于你的操作系统的二进制文件或使用pip安装。 - 使用命令行启动 mitmproxy (`mitmproxy` 或 `mitmdump`),通常默认监听 HTTP 和 HTTPS。 2. **基本操作**: - **抓包**:连接到要分析的网络,看到所有经过代理的请求和响应。 - **过滤**:使用命令行或交互式模式过滤特定请求,如URL、HTTP头或数据内容。 - **修改**:修改请求参数、添加或删除headers,甚至替换整个响应。 3. **API和插件**: - 学习 MITMProxy API,通过Python脚本扩展功能,如自动化处理或创建更复杂的拦截规则。 - 安装插件库,如 mitmproxy.contrib,增加更多的功能,如SSL证书管理、自动登录等。 4. **认证处理**: - 针对带有身份验证的网站,理解如何保存和重用cookie,或使用插件支持OAuth等。 5. **高级功能**: - 学习使用mitmproxy的交互模式(mitmproxy -s script.py),编写脚本来自动化复杂任务。 - 了解 mitmdump,它是mitmproxy的命令行接口,可用于批量处理网络流量。 **相关问题--:** 1. 你如何在mitmproxy中设置代理? 2. 如何查看和保存请求/响应的历史记录? 3. 有没有推荐的插件可以用于mitmproxy进行网站审计?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值