mitmproxy代理/爬虫
1.安装
MAC:
brew install mitmproxy
MAC/WINDOWS/LINUX
pip install mitmproxy
2.开启监测
开启mitmproxy的设备:
mitmproxy -p 端口号
有三种方式可以开启mitmproxy监测
- mitmproxy 终端可交互界面
- mitmweb 浏览器版GUI可交互界面
- mitmdump 终端输出(不可交互)
3.网络环境配置
被监测的设备(一般是你的手机)和开启mitmproxy的设备(一般是电脑)要在同一片局域网内。
手机进入局域网后(可以通过连接热点)后 ,在热点模块里开启自定义代理,端口号指定同开启mitmproxy服务时确定的端口号。
手机(此处IOS举例)具体操作:
Settings=>WLAN=>局域网网络(一般也就是你的热点)右侧感叹号=>Configure Proxy=>Manaul(填入你开启mitmproxy监测服务的设备的ip以及端口号)
此时访问任何站点由于没有证书,都会显示证书不可信任 接下来访问(http://mitm.it) 下载配置文件(此处一定要先进入开启mitmproxy的设备所在局域网并且设置好代理后才可以正常访问这个站点!)。
在设置里下载证书
Settings=>General=>VPN&DeviceManagement=>mitmproxy=>Install
启用证书(注意,下载证书还不够!一定要开启!)
Settings=>General=>About=>Certificate Trust Settings=>开启mitmproxy
之后访问网站就会正常,同时电脑终端也可以看到请求
如果要针对不同请求做不同处理/记录日志,则可以通过python脚本的方式
脚本范例:
#addon.py
from mitmproxy import http
def request(flow: http.HTTPFlow):
# redirect to different host
if flow.request.pretty_host == "example.com":
flow.request.host = "mitmproxy.org"
# answer from proxy
elif flow.request.path.endswith("/brew"):
flow.response = http.HTTPResponse.make(
418, **b**"I'm a teapot",
)
启动方式:
mitmproxy -s ./app.py