使用fiddler抓取HTTPS的数据包(抓取App端的数据包)
众所周知,我们在做接口测试的时候有两种情况:
第一种是先拿到接口测试规范文档,再去做接口测试。
第二种是没有接口文档,只有通过自己抓包。
那么说到抓包,就不得不说抓包工具,对于浏览器web端,我们只需要通过F12打开开发者工具便可抓包;但是对于手机端,我们就需要利用抓包工具,比如常用的抓包工具:fiddler、Charles。
接下来的内容就是教你如何利用fiddler抓取手机端的包。
这里使用的是安卓模拟器,当然如果你喜欢使用真机测试也是可以的。
-
下载并安装fiddler
建议去官网下载:
https://www.telerik.com/fiddler
当然,官网下载可能比较慢,这里提供百度网盘下载。
百度网盘地址:
链接:https://pan.baidu.com/s/18hzkk4LRCgsqHOeTuLRWVQ
提取码:fe12安装:
安装方式很简单,双击下载好的.exe文件,然后选择目录,next,next,完成安装即可。
下载并安装完成后打开的界面如下:
-
配置fiddler代理:Tools -> Options
想要抓取https的数据包必须安装证书。
接着是手机的配置
-
查看电脑IP地址
方式一:打开fiddler软件 -> 鼠标移至右上角Oline处
方式二:打开cmd -> ipconfig
-
模拟器(手机)配置代理:设置 -> WLAN -> 长按wabao -> 修改网络(使模拟器与fiddler代理服务器在同一网络)
-
打开手机模拟器的浏览器输入ip及端口号
点击FiddlerRoot certificate下载证书,下载完成后点击允许安装证书
这时候一定要把安装的证书设置为信任的证书:手机设置->通用->关于本机->证书新人设置,把刚才安装的证书设置为信任的证书。
-
然后打开手机上的app,在fiddler中就可以看到http的数据包了,打开一个https的连接,也可以看到,数据是没有加密的,说明https数据包抓取成功。
🐒PS:如果前面的步骤都设置完成,还是抓不到包,极大可能是因为证书配置有问题,把之前的证书清除,再按照步骤重新配置一遍,重启fiddler,并且重新在手机上安装证书或者重启模拟器。
🐒CA证书:抓取HTTPS的数据包。
🐒fiddler代理抓取不到数据包的两种情况:
-
虽然fiddler代理可以抓取大多数的数据包,但并不是所有的数据包都能抓到。比如:http2、tcp、udp、websocket,fiddler代理是抓取不到这些数据包的。因为fiddler是基于.net framework实现的,.net framework不支持上述列举的协议。
-
还有另外一种情况也是无法抓到数据包的,app使用自带的证书,app不信任我们给手机安装的证书。fiddler抓包的原理是中间人攻击,也就是说,两头瞒,欺骗客户端还欺骗服务器端,如果https证书在app里面写死,app只信任自己的证书,fiddler代理就没有办法瞒过客户端了,因此也就抓取不到数据包。
-
本文作者:测试蔡坨坨
本文链接:https://www.cnblogs.com/caituotuo/p/14213190.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步