使用fiddler抓取HTTPS的数据包(抓取App端的数据包)

众所周知,我们在做接口测试的时候有两种情况:
第一种是先拿到接口测试规范文档,再去做接口测试。
第二种是没有接口文档,只有通过自己抓包。

那么说到抓包,就不得不说抓包工具,对于浏览器web端,我们只需要通过F12打开开发者工具便可抓包;但是对于手机端,我们就需要利用抓包工具,比如常用的抓包工具:fiddler、Charles。

接下来的内容就是教你如何利用fiddler抓取手机端的包。

这里使用的是安卓模拟器,当然如果你喜欢使用真机测试也是可以的。

  1. 下载并安装fiddler

    建议去官网下载:

    https://www.telerik.com/fiddler

    当然,官网下载可能比较慢,这里提供百度网盘下载。

    百度网盘地址:

    链接:https://pan.baidu.com/s/18hzkk4LRCgsqHOeTuLRWVQ
    提取码:fe12

    安装:

    安装方式很简单,双击下载好的.exe文件,然后选择目录,next,next,完成安装即可。

    下载并安装完成后打开的界面如下:

    image-20201229224559172
  2. 配置fiddler代理:Tools -> Options

    想要抓取https的数据包必须安装证书。

    image-20201229225718586

    接着是手机的配置

  3. 查看电脑IP地址

    方式一:打开fiddler软件 -> 鼠标移至右上角Oline处

    方式二:打开cmd -> ipconfig

  4. 模拟器(手机)配置代理:设置 -> WLAN -> 长按wabao -> 修改网络(使模拟器与fiddler代理服务器在同一网络)

    image-20201229230221178

  5. 打开手机模拟器的浏览器输入ip及端口号

    点击FiddlerRoot certificate下载证书,下载完成后点击允许安装证书

    这时候一定要把安装的证书设置为信任的证书:手机设置->通用->关于本机->证书新人设置,把刚才安装的证书设置为信任的证书。

  6. 然后打开手机上的app,在fiddler中就可以看到http的数据包了,打开一个https的连接,也可以看到,数据是没有加密的,说明https数据包抓取成功。

    image-20201230192811252

    🐒PS:如果前面的步骤都设置完成,还是抓不到包,极大可能是因为证书配置有问题,把之前的证书清除,再按照步骤重新配置一遍,重启fiddler,并且重新在手机上安装证书或者重启模拟器。

    🐒CA证书:抓取HTTPS的数据包。

    🐒fiddler代理抓取不到数据包的两种情况:

    • 虽然fiddler代理可以抓取大多数的数据包,但并不是所有的数据包都能抓到。比如:http2、tcp、udp、websocket,fiddler代理是抓取不到这些数据包的。因为fiddler是基于.net framework实现的,.net framework不支持上述列举的协议。

    • 还有另外一种情况也是无法抓到数据包的,app使用自带的证书,app不信任我们给手机安装的证书。fiddler抓包的原理是中间人攻击,也就是说,两头瞒,欺骗客户端还欺骗服务器端,如果https证书在app里面写死,app只信任自己的证书,fiddler代理就没有办法瞒过客户端了,因此也就抓取不到数据包。

posted @ 2020-12-30 19:43  测试蔡坨坨  阅读(4314)  评论(0编辑  收藏  举报