背景
抓包作为软件测试工作中必不可缺的技能,如果一个抓包工具失效,很多人不知道怎么去进行手中的工作,所以一定要掌握好抓包的技巧。
抓包的原理
提出问题, 什么是数据包?包是怎么传输的?
定义:包是在tcp/ip
协议传输过程中的一个数据单位。
数据包的传输过程
“扩展思考:抓包是在哪一层操作的?我们平时工作又在哪一层?
常见的抓包工具
1.常见的抓包工具有 Charles
、Fiddler
2.通用问题:
-
不开源
-
配置复杂(个人觉得没什么复杂的)
-
Charles
只适用于Windows
,Mac
、Fiddler
只适用于windows
抓包工具推荐
1.http
、https
抓包推荐使用whistle
2.tcp
、udp
抓包推荐使用 wireshark
3.使用代码抓包推荐 mitmproxy
whistle使用技巧
1.安装环境 node
环境
https://nodejs.cn/download/
2.安装命令
npm install -g whistle
3.检查是否安装成功
whisle -V
4.whisle
启动
w2 start
5.whisle
查看帮助信息
w2 help
whistle
的默认端口是8899
,如果要指定端口号,执行下面的命令
w2 start -p 8888
6.停止whistle
w2 stop
使用 whistle 抓包步骤
1.whisle
启动 web
界面
2.手机配置代理(苹果手机举例)
-
手机连接公司网络
-
点击无线局域网
-
点击感叹号
-
点击配置代理
-
选择手动
-
服务器输入图上
ip
-
端口输入图上端口号
-
点击存储
3.下载 https
证书
web
页面 ,点击https
出现证书下载二维码,手机扫描后进行下载
4.安装证书(苹果手机举例)
设置 -> 点击通用 -> 点击VPN
与设备管理 -> 点击已下载的描述文件 -> 点击安装
5.信任证书(苹果手机举例)
设置 -> 点击通用 -> 点击证书信任设置 -> 打开刚刚安装的证书信任开关
6.mock
技巧
-
修改规则
-
修改成功截图
使用 wireshark 抓包
1.安装wireshark
https://www.wireshark.org/download.html
2.开始抓包(苹果手机举例)
第一步:使用USB
数据线将iOS
设备连接到Mac
上;
第二步:获取iOS
设备的UCID
,可以直接使用iTunes/Xcode
的organizer
工具查看;
第三步:
-
创建rvi接口:
rvictl -s
-
查看创建虚拟接口:
rvictl -l
-
创建后可以使用如下命令查看虚拟接口是否创建成功:
ifconfig rvi0
第四步:使用Wireshark
等针对创建虚拟接口抓包
第五步:分析完成后,移除创建的rvi
接口:rvictl -x
“备注:
Android
设备需要root
,使用tcpdump
可以进行非Wi-Fi
抓包。
3.应用场景
ipv6
与ipv4
流量浓度对比https://zhishu.zhipin.com/wiki/DcwNOsClpx6
使用 mitmproxy 进行抓包
1.环境准备:基于python
环境
2.安装 mitmproxy
pip3 install mitmproxy
3.启动 mitmproxy
启动 mitmproxy
用 mitmproxy
、mitmdump
、mitmweb
这三个命令中的任意一个即可
-
mitmproxy:脚本模式
-
mitmdump:后台模式
-
mitmweb:web 模式
参数介绍
4.启动后连接代理:同上
5.安装证书
http://mitm.it/
6.脚本编写
import mitmproxy.http
from mitmproxy import ctx
class Counter:
def __init__(self):
self.num = 0
def request(self, flow: mitmproxy.http.HTTPFlow):
self.num = self.num + 1
ctx.log.info("请求的url为:"+flow.request.pretty_url )
def response(self, flow: mitmproxy.http.HTTPFlow):
ctx.log.info("请求的返回值为:" + flow.response.get_text())
addons = [
Counter()
]
7.实现代码抓包
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。