简介
mitmproxy 基于Python开发的 是一个免费开源的交互式HTTPS代理。
安装
pip install mitmproxy
三种启动命令
三种命令对应不同的三种模式
-
mitmproxy
-> 提供一个命令行界面(该命令不支持windows)。 -
mitmdump
-> 提供一个简单的终端输出。 -
mitmweb
-> 提供一个浏览器界面。
mitmdump
mitmdump是mitmproxy所提供的命令之一。它提供类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量。
1. 启动监听
~ mitmdump -w ~/log.txt
Proxy server listening at http://*:8080
该命令会占用本地8080
端口,将监听的数据写入到 ~/log.txt 文件中
2 . 浏览器设置代理
浏览器监听端口号要与 mitmproxy
监听的端口8080
保持一致。
2 .1 打开网页不支持https的解决办法
image-202008142129546032.2、用命令行启动一个临时的浏览器,指定代理,并忽略掉证书错误
# mac
open -a /Applications/Google\ Chrome.app --args --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
# windows
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
3. 抓取请求
- 浏览器发送请求,shell中抓取了请求,并同时写入了文件
log.txt
mitmweb
mitmweb启动默认浏览器,并打开一个web版的抓包工具,为了直观的看到请求和响应的数据,我们使用
mitmweb
命令运行脚本
1. 自定义脚本修改请求
# vim http_add_header.py
"""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()
]
2. 启动代理
~ mitmweb -s ./http_add_header.py
Web server listening at http://127.0.0.1:8081/
Loading script ./http_add_header.py
Proxy server listening at http://*:8080
3. 浏览器访问请求
image-20200814215402432- 请求头默认加上了我们脚本中设置的参数 count
网友评论