mitmproxy是命令行工具,但是也自带了mitmweb工具,可以让用户在网页上操作 。另外,mitmproxy还支持用户自行编写插件,可以编写脚本对请求进行处理,然后把修改后的请求发出去 。
1、安装首先需要在机器安装python3以及pip3.之后通过pip3安装
如果安装mitmproxy过程中报错ModuleNotFoundError: No module named '_ssl',就需要安装一下OpenSSL,然后再重新编译安装一下python3 。
文章插图
安装好openSSL后再执行pip3 install mitmproxy
2、使用
安装后,直接在命令行输入mitmproxy就会进入它的交互界面:
文章插图
这时候mitmproxy已经开始监听8080端口(默认),接着,我们可以去浏览器设置代理 。浏览器设置代理的方式有很多,这里不多做介绍 。
设置完代理后,访问浏览器的请求都会被发到mitmproxy上,mitmproxy根据规则对请求进行拦截(不配置拦截规则的话则都不拦截),所有经过的请求都会被输出:
文章插图
在交互界面上可以通过快捷键操作请求 。输入问号’?’,可以查看快捷键的文档 。
文章插图
3、下面介绍一些常用的快捷键和功能
① 请求过滤在请求列表交互界面,按下f键后,可以输入一些过滤规则:
文章插图
具体的过滤语法可以按下’?‘键后,再按下方向键右’—>’或者l键 。
文章插图
②请求拦截按下i键后,可以对指定的请求进行拦截 。按mitmproxy收到指定条件的请求时,不会立马把它转发出去,而是等待我们执行resume操作后,才会把请求转发出去——在这期间我们甚至可以对请求进行手动修改 。
文章插图
红色字体表示该请求被拦截,之后我们可以按入a键来恢复该请求,可以输入A键恢复所有被拦截的请求 。
③ 查看/编辑请求把指示光标移动到某个请求上,按回车可以查看请求的内容 。或者鼠标直接点击请求也可以 。
文章插图
之后通过左右方向键可以查看request、response、detail等信息 。
如果要编辑请求,可以在这个界面输入e,然后会让我们选择编辑哪块内容:
文章插图
之后就会进入vim编辑界面编辑相应的内容了(保存后会生效) 。
④ 重发请求mitmproxy的光标指向某个请求时,按下r键可以重发这个请求(重发前可以对该请求进行编辑) 。
文章插图
按下’:’键后,可以输入命令,这样我们就可以通过过滤规则批量的重发请求
文章插图
replay.client是mitmproxy内置的一个命令,我们也可以自行编写命令 。命令的编写可以参考官网文档,这里不做介绍 。
⑤ 插件开发我们可以编写插件,然后再启动的时候指定插件,mitmproxy处理请求的时候会执行一个插件的链,这样我们就可以对请求进行编辑然后再发送出去了 。
借用官网的插件demo:
文章插图
这个方法对每一个请求进行处理,然后打印序号 。通过mitmproxy -s test.py来让插件生效 。通过插件可以绑定各种连接事件 。感兴趣的朋友可以自行去mitmproxy官网看文档,这里不多做介绍 。
⑥ 保存抓到的请求数据通过w快捷键我们可以把这次抓到的请求包保存到文件上 。
通过mitmproxy -r file可以读取以前抓取的请求信息进行分析 。
优点:
- 命令行操作,可以在无GUI界面的服务器上使用
06总 结
推荐阅读
- Fiddler 抓包工具 - 全网最全最细教程,没有之一
- 网络监控的所有接线布线方式
- 2021年,全球顶级网络安全公司TOP20有哪些?
- 青钱柳茶的禁忌,青钱柳茶的四大禁忌
- cup是什么中文意思?cup是什么网络用语
- 为什么孙悟空能戏弄三清?四大天王和孙悟空
- 四大菩提子排名,龙眼菩提子最新价格
- 使用EMNIST数据集训练第一个pytorch CNN手写字母识别神经网络
- 网络安全学习:内网渗透案例,打破渗透瓶颈
- 东吴四英杰第一位是谁?东吴四大将