mitmproxy、mitmdump、mitmweb 比较
- 启动 mitmdump,用 mitmproxy、mitmdump、mitmweb 这三个命令中的任意一个即可,这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同
- mitmproxy 会提供一个在终端下的图形界面,具有修改请求和响应,流量重放等功能,具体操作方式有点 vim 的风格,mitmproxy 命令不支持在 windows 系统中运行
- mitmdump 可设定规则保存或重放请求和响应,mitmdump 的特点是支持 inline 脚本,由于拥有可以修改 request 和 response 中每一个细节的能力,批量测试,劫持等都可以轻松实现
- mitmweb 提供的一个简单 web 界面,简单实用,初学者或者对终端命令行不熟悉的可以用 mitmweb 界面
- 此外还有一款 anyproxy,也具有类似功能
mitmdump
- mitmdump 是 mitmproxy 的命令行版本。将 tcpdump 用于 HTT
- 近似于 charles 的命令行版本
- python:mitmproxy
- 功能和 charles、fiddler 相似,强大之处在于它的工具 mitmdump 可以直接对接 python 对请求做处理
- mitmdump 是 mitmproxy 的命令行窗口,同时还可对接 python 对请求进行处理,因此就不用手动截获和分析 http 请求和响应,只需要写好请求和响应的处理逻辑即可
- 可用参数
-p PORT --port PORT # 设置 mitmproxy 的代理端口
-T --transparent # 设置透明代理
--socks # 设置 SOCKS5 代理
-s "script.py --bar" # 执行脚本,通过双引号来添加参数
-t FILTER # 过滤参数
实例
- 启动脚本 index.py, 监控端口 8888,
mitmdump -s index.py -p 8888
mitmweb
会启动一个 web 界面,127.0.0.1:8081
mitmweb -s index.py -p 8888
mitmproxy 模块使用
安装
pip install mitmproxy
脚本使用
- addons,是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。这些类,称为一个 addon
- 容易管理和拓展
addons = [
Counter() # Countrer是类实例,实现了mitmproxy的事件
]
def request(flow):
def response(flow):
flow.request.url
flow.request.headers
flow.response.text
proxy = ("114.240.101.242", 5672)
flow.live.change_upstream_proxy_server(proxy)
def request(flow):
if flow.request.url.startswith("https://www.baidu.com"):
requesturl = flow.request.url
requestheaders = str(flow.request.headers)
data = dict()
url = "http://xxxx/url"
data["url"] = requesturl
data["debug"] = False
data["headers"] = requestheaders
# 通过redis传递请求
sa(data)
证书
mitmproxy-ca.pem, PEM格式的证书私钥
mitmproxy-ca-cert.pem PEM格式证书,适用于大多数非Windows平台
mitmproxy-ca-cert.p12 PKCS12格式的证书,适用于大多数Windows平台
mitmproxy-ca-cert.cer 与 mitmproxy-ca-cert.pem, 相同(只是后缀名不同),适用于大部分Android平台
- mitmproxy-dhparam.pem PEM 格式的秘钥文件,用于增强 SSL 安全性,证书安装到受信任的根目录中
使用步骤
- 安装 mitmdump 或 mitmproxy
- 启动,然后安装证书
- 监听 mitmdump -s index.py -p 8888
- 监听 8888 端口
- 设置代理或 VPN(drony),指向 mitmproxy,如果是本机,则指向 127.0.0.1:8888(Drony 中的 host 和 port)
- 浏览器代理
- 手机模拟器代理
- 手机 wifi 代理
- 修改脚本
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于