目录:
mitmproxy简介
mitmproxy 是一个免费开源的交互式HTTPS代理。


github地址:https://github.com/mitmproxy/mitmproxy/
安装

- 你可以下载客户端
https://mitmproxy.org/downloads/
- mitmproxy 是基于Python 开发的库,也可以通过 pip安装。
pip install mitmproxy
注:windows上安装失败,需要安装Microsoft visual c++ v14.0以上
使用
mitmproxy 提供了三个命令,启动模式不同:
- mitmproxy -> 提供一个命令行界面(该命令不支持windows)。
- mitmdump -> 提供一个简单的终端输出。
- mitmweb -> 提供一个浏览器界面。
注:Linux经常用mitmproxy来抓包
Windows经常用mitmweb来抓包
mitmdump用来与Python交互
Windows上使用mitmproxy:
mitmdump --version 查看版本
1.在cmd中输入mitmdump -w test.txt(可以将抓到的包的信息存到test.txt中)
(默认监听8080端口,则浏览器代理也要设置成8080端口)

2.ipconfig查看IP:192.168.253.128
3.打开Chrome浏览器,设置switchomega: 新建情景模式--mitmproxy--创建



Chrome切换到mitmproxy代理,访问百度,会出现以下页面,需要安装mitmproxy证书

4.访问mitm.it来选择操作系统安装证书(安装过程中会需要密码,可以不填直接下一步,证书存储位置选择受信任的根证书颁发机构)


5.重启Chrome,此时访问百度,就可以抓到包了(数据流都存到了test.txt中,可以打开test.txt来查看)

编写 Mitmproxy 自定义脚本,这才是 Mitmproxy 真正强大的在方。
Mitmproxy官方给了很多例子:
https://docs.mitmproxy.org/stable/addons-examples/
我们演示一个简单的例子 http-add-header.py, 为每一个 response 中增一个数字,标明当前是第几个请求。
"""Add an HTTP header to each response.""" class AddHeader: def __init__(self): self.num = 0 def response(self, flow): self.num = self.num + 1 flow.response.headers["count"] = str(self.num) addons = [ AddHeader() ]
mitmweb的使用:
在cmd中直接输入 mitmweb 会在浏览器中弹出一个页面,此时在浏览器中访问其他网站就可以抓包了



Linux上使用mitmproxy:
mitmproxy --version 查看版本
1.在终端中输入mitmproxy然后回车(默认监听8080端口,则浏览器代理也要设置成8080端口),
2.ifconfig查看IP:192.168.253.128
3.打开Chrome浏览器,设置switchomega: 新建情景模式--mitmproxy--创建



Chrome切换到mitmproxy代理,访问百度,会出现以下页面,需要安装mitmproxy证书

4.访问mitm.it来选择操作系统安装证书(安装过程中会需要密码,可以不填直接下一步,证书存储位置选择受信任的根证书颁发机构)


5.重启Chrome,此时访问百度,就可以抓到包了(flows下的数据流)
上下键可以选择要查看的请求URL,回车可以看详情
在详情页面按tab键可以在request、response、detail中切换,按esc再按q退回到flows数据流页面


浙公网安备 33010602011771号