抓包工具之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证书配置

  1. 在终端输入命令

mitmproxy -p 代理端口(默认端口是:8080)

2. 在网页访问链接:http://mitm.it/

备注:下载相应的证书即可

三、如何使用

mitmproxy工具介绍

  • mitmproxy:命令行工具

  • mitmdump:可以用于加载python脚本

  • mitmweb:web界面工具

mitmproxy

  1. 运行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%免费】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!