抓包工具之mitmproxy
今天给大家分享一个非常实用抓包工具,不需要安装软件,直接可以在浏览器上进行抓包,mitmproxy其实是基于python的第三方库,并且配合python脚本可以篡改请求和响应数据,使用起来相对于简单,易于上手,推荐给大家。
一、mitmproxy简介
mitmproxy介绍
mitmproxy又名中间人攻击代理,是一个抓包工具,类似于WireShark、Filddler,并且它支持抓取HTTP和HTTPS协议的数据包,只不过它是一个控制台的形式操作。另外,它还有两个非常有用的组件,一个mitmdump,它是mitmproxy的命令行接口,可以直接抓取请求数据;另一个是mitmweb,它是一个web程序,通过它可以清楚的观察mitmproxy抓取的请求数据。
为什么选择 mitmproxy
1. 相对于我们常用的 fiddle 代理工具,它是可以跨平台
2. 相对于跨平台的 charles 代理工具,它是开源免费的
3. 最重要的一点,也是为什么我们采用 mitmproxy 来进行做 Mock,它支持使用 Python 进行二次开发,这样就可以结合业务进行灵活拓展了
官方文档
https://docs.mitmproxy.org/stable/
二、配置和安装
安装
1. windows下安装mitmproxy:
pip install mitmproxy
2. linux安装mitmproxy
pip3 install mitmproxy
3. mac下安装mitmproxy
brew install mitmproxy
配置代理服务
安装完成后,需要在电脑端的设置->网络->代理中开启手动代理,并输入相
应的host和port
mitmproxy证书配置
-
在终端输入命令
mitmproxy -p 代理端口(默认端口是:8080)
2. 在网页访问链接:http://mitm.it/
备注:下载相应的证书即可
三、如何使用
mitmproxy工具介绍
-
mitmproxy:命令行工具
-
mitmdump:可以用于加载python脚本
-
mitmweb:web界面工具
mitmproxy
-
运行mitmproxy
通过命令行的方式运行,在终端输入命令: mitmproxy -p 代理的端口(默认端口是8080)
2. 查看请求
通过鼠标滚轮上下滑动,即可切换请求,选中某个请求后,可正常查看请求详情,根据下图,可以正常查看request、response、detail
内容,然后通过q命令可以返回到主界面
3. 过滤请求
下方是目前支持的过滤请求的表达式,想要了解更多,可以访问官方文档
命令 |
描述 |
~b 正则表达式 |
身体 |
~bq 正则表达式 |
请求正文 |
~bs 正则表达式 |
响应体 |
~c 整数 |
HTTP 响应代码 |
~d 正则表达式 |
领域 |
~DNS |
匹配 DNS 流 |
~dst 正则表达式 |
匹配目标地址 |
~e |
匹配错误 |
~h 正则表达式 |
标头 |
~hq 正则表达式 |
请求头 |
~hs 正则表达式 |
响应头 |
~http |
匹配 HTTP 流 |
~m 正则表达式 |
方法 |
〜标记 |
匹配标记流 |
~标记正则表达式 |
将标记的流与指定的标记匹配 |
~元正则表达式 |
流元数据 |
~q |
匹配请求无响应 |
~s |
匹配响应 |
~src 正则表达式 |
匹配源地址 |
~t 正则表达式 |
内容类型标头 |
〜TCP |
匹配 TCP 流 |
~udp |
匹配 UDP 流 |
通过输入命令:f,进入编辑模式,然后输入表达式:“~ d 域名”,假设域名为:www.baidu.com,然后点击enter键,查看过滤请求数据
4. 修改请求
step1
输入命令:i,进入编辑模式,然后输入“目标网址”,然后点击enter键,这里以百度为例
step2
点击该请求
step3
输入命令:e,通过键盘上下键翻页,选择:query,然后点击enter键,进入编辑模式
step4
将请求参数wd修改为:test123,保存后,按:ESC键退出编辑模式
step5
使用命令:q,退出至请求列表页,然后使用命令:a键可以恢复该请求。若是要恢复所有的请求,则使用命令:shift + a ,然后在网页查看:百度请求的结果都变成:test123
mitmweb
1. 运行mitmweb
在终端中输入命令: mitmweb -p 8888 ,则会在本地启动一个服务,打开一个web页面,专门用于查看数据流量
2. 过滤请求
通过Start模块下关键字搜索,可以快速过滤请求
3. 清除接口信息
4. 修改请求
通过Start模块的Intercept中搜索匹配需要修改请求的网址,然后再选中请求数据,编辑request信息
点击resume 按钮,重新恢复请求即可
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!