mitmproxy 是一款开源的网络代理工具,可以用于拦截、查看、修改和重放 HTTP、HTTPS、HTTP2、WebSockets,以及 TCP 数据。它的核心特性包括交互式 UI、CLI 接口,和 Python API。mitmproxy 提供了多种有效的工具,包括 mitmproxy 命令行界面,mitmweb 网络界面,mitmdump 备份工具等。
mitmproxy的github地址如下:https://github.com/mitmproxy/mitmproxy 目前已经拥有34.4k 的star。足以证明这个网络代理神器的欢迎程度
它的官网如下,这里着重说一下mitmproxy的一些主要特性
pip install mitmproxy
mitmproxy提供了三种主要的工具:mitmproxy,mitmweb和mitmdump。
mitmproxy是一个交互式的命令行界面,请在命令行或者终端中输入mitmproxy来启动它。
mitmweb则是一个基于浏览器的图形界面,你可以通过在命令行或者终端中输入mitmweb来启动它。
mitmdump是非交互式的,提供终端输出。你可以通过在命令行或者终端中输入mitmdump来使用这个工具。
在这里我们一般使用交互式的或者 web的mitmproxy 输入mitmproxy,它会默认监听8080端口,
(venv) E:\demo\>mitmweb
HTTP(S) proxy listening at *:8080.
Web server listening at http://127.0.0.1:8081/
如果端口被占用或者自定义端口,那么在启动时候加-p 参数指定端口即可。例如我们通过web形式启动mitmproxy并且指定端口为8888 mitmweb -p 8888
8081则是我们的浏览器页面。
HTTP(S) proxy listening at *:8888.
Web server listening at http://127.0.0.1:8081/
接下来我们要抓包进行分析,大多请求都是HTTPS的。所以需要我们安装对应的证书,这一步其实也很简单,在Android 或者IOS 上我们进行设置网络代理。服务器IP填写启动mitmproxy的机器IP,端口填写指定的端口,比如8888。然后在浏览器中打开http://mitm.it,如果设置正确,它应该会展示一个简易的页面,引导你安装mitmproxy的证书。
根据自己的设备来下载对应的证书,然后进行安装即可。
然后你就会发现所有请求都会在mitmweb 的页面上展示,在这个页面,我们可以看到请求和响应的各种信息,也可以进行请求重发。同时也可以配合mitmproxy对应的API,来通过Python将请求拦截和做处理,实现接口自动化测试方案。非常好用。
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。