四大网络抓包神器,总有一款适合你( 二 )


mitmproxy是命令行工具,但是也自带了mitmweb工具,可以让用户在网页上操作 。另外,mitmproxy还支持用户自行编写插件,可以编写脚本对请求进行处理,然后把修改后的请求发出去 。
 
1、安装首先需要在机器安装python3以及pip3.之后通过pip3安装
pip3 install mitmproxy
 
如果安装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总 结


推荐阅读