你在用哪款 代理/抓包工具? 你可能会回答fiddler,charles 等HTTP/HTTPS抓包工具,或者是网卡级的 wireshark工具。
这里再推荐一款代理工具 mitmproxy ,前些天公司项目中有用到,这里做个简单的介绍。
mitmproxy 是一个免费开源的交互式HTTPS代理。
github地址:https://github.com/mitmproxy/mitmproxy/
安装
- 你可以下载客户端
https://mitmproxy.org/downloads/
- mitmproxy 是基于Python 开发的库,也可以通过 pip安装。
pip install mitmproxy
使用
mitmproxy 提供了三个命令,启动模式不同:
- mitmproxy -> 提供一个命令行界面(该命令不支持windows)。
- mitmdump -> 提供一个简单的终端输出。
- mitmweb -> 提供一个浏览器界面。
mitmdump
mitmdump是mitmproxy所提供的命令之一。它提供类似于tcpdump的功能,让您可以查看、记录和以编程方式转换HTTP流量。
声明:这个监听工具的使用有些绕弯,一般智商的人看不懂!坐好小板凳,认真看!
- 启动监听
> mitmdump -w d://log.txt
Proxy server listening at http://*:8080
该命令会占用本地8080
端口,将监听的数据写入到 d://log.txt
文件中。
- 设置浏览器代理
你可以选择监听手机请求 或 本地的浏览器请求。我们以本地的浏览器请求为例。Windows用户请打开自带IE浏览器,设置代理。
如果看不懂,请自行百度 IE 如何设置局域网代理。注意,端口号一定要与 mitmproxy 监听的端口8080
保持一致。
- 支持HTTPS
现在大部分网站都使用的是HTTPS,此时你随便打开一个网站都会提示你。
所以,我们要换种方式启动浏览器,以chrome为例子,先关闭chrome浏览器,打开windows 终端(cmd),输入下面的命令
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
是chrome浏览器的安装路径,请根据你的安装路径替换。
上面的命令会帮你打开浏览器,那么这次可以访问HTTPS的网站的,虽然,还是提示不安全。
- 查看监听信息
此时,mitmproxy 已经获取到监听信息了。
打开 d://log.txt
文件,也能看到写入的监听信息。
最后,费劲巴拉搞半天,这有什么用?fiddler/charles 不香吗? 别急!我们可以写python脚本过滤 监听的数据,我下周再介绍!