一、fiddler简介和安装
1.1、工具介绍 fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”fiddler的数据(指cookie,html,js,css等文件)。fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯,还提供了一个用户友好的格式。
1.2、工具安装 安装fiddler,安装位置自己选择,fiddler官网地址:[https://www.telerik.com/fiddler],请需要同学自行下载哦
二、如何使用fiddler抓包
2.1、抓取移动端数据包 如果要抓手机APP的包,接下来我们来设置fiddler的相关设置,如果只抓APP的HTTP包,也就是没有加ssl安全协议的https数据包的话,我们基本不用设置什么就可以抓取,如下,记住端口号就行了:
2.2、步骤 (1)在电脑cmd命令窗口查看自己电脑的IP; (2)然后在手机连接的WiFi上设置代理,代理地址是电脑的IP,端口是fiddler的端口8888(注意:电脑和手机要处于同一网络环境); (3)接着打开APP进行数据请求; (4)fiddler界面查看需要的请求和响应数据,是不是抓到我们请求的数据连接了;
3、抓取APP的HTTPS数据包 3.1、步骤 (1)在下载fiddler的时候,顺带去下载一个基于iOS和安卓的插件:CertMaker (百度官网下载就行); (2)下载好了默认安装就行;
(3)查看安装好了之后去手机,对于iOS手机:在手机自带浏览器safari浏览器地址栏输入安装fiddler的电脑的IP fiddler的端口8888,下载证书,然后在手机设置里面设置允许使用证书,完事;
(4)对于安卓手机:在手机自带浏览器地址栏输入安装fiddler的电脑的IP fiddler的端口8888(如:192.168.1.100:8888),进行下载和安装证书,也完事(注意:有的安卓机会提示安装证书要设置锁屏密码,按照提示设置即可);
(5)接下来和上面说的抓取http数据请求一致,设置手机网络代理,整个流程完毕;
注意 7.0及以上的安卓手机系统默认不识别我们安装的证书,安卓9.0以上只识别系统明文的证书
解决办法 1、换ios手机或者安卓系统7以下的手机进行抓取数据请求。
三、抓取电脑端https数据包
3.1、步骤 (1)已安装fiddler,如抓不到包,请看后续步骤操作; (2)在cmd命令窗口输入certmgr.msc,打开证书管理器,搜索fiddler,把fiddler证书全部删掉,浏览器的fiddler证书也全部删除; (3)接下来去浏览器设置代理,127.0.0.1:8888,就可以抓HTTPS的请求了;
3.2、抓取浏览器的https数据包失败怎么办?
(1)清除电脑上的fiddler证书;
WIN R快捷键,输入:certmgr.msc, 然后回车,查找所有fiddler证书,然后删除;
(2)清除浏览器上的fiddler证书;
清除浏览器上的证书文件 ,此处需要仔细查找带有FiddlerRoot的字样,并删除,以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/;
(3)打开fiddler,点击工具栏中的Tools—>Options,点击Actions,选择最后一项,Reset All certificates,然后关闭;
证书全部清除后重新安装证书即可完成抓包,之前可能因为证书混乱导致抓不到。
四、fiddler断点
3.1、步骤
(1)找到需要打断点的请求链接 (2)点击请求地址,选择菜单栏的rules-automatic breakpoints-before requests(意思:在在这个请求发送到服务器之前),进行拦截, (3)修改数据后,得到一个新的请求,点击新的断点请求,对请求数据进行修改 (4)修改好了之后点击‘run to completion’发送打了断点的请求,然后查看请求列表,可进行数据传输安全性测试
小结:
作为测试人员,fiddler是使用频率最高的工具,在没有接口文档的情况下,可以通过前端抓包获取请求的相关数据,确认是接口问题还是前端问题,避免被怼,在进行一些逻辑和逆向思维测试的时候,fiddler简直是神一样的助手,对数据进行修改,发送,验证数据在传输过程中是否进行加密处理,保证敏感数据的安全性,简直是我们测试人员的好帮手。