Fiddler4——手机抓包

一、下载工具包

          百度搜索”fiddler 下载“ ,安装最新版本

          下载的软件安装包为“fiddler_4.6.20171.26113_setup.exe”格式,双击安装。安装成功,在“开始”-“所有程序”,就会看见这样的图标,若是常用的话,也可以在桌面建一个快捷方式,如下图:

       

二、fiddler手机抓包原理

        fiddler手机抓包的原理与抓pc上的web数据一样,都是把fiddler当作代理,网络请求走fiddler,fiddler从中拦截数据,由于fiddler充当中间人的角色,所以可以解密https

        在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应。

       Fiddler 是以代理web 服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。网络请求走fiddler,fiddler从中拦截数据,由于fiddler充当中间人的角色,所以可以解密https。因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此,它还可以支持请求重放等一些高级功能。它还可以支持对手机应用进行http抓包的。本文主要考察的就是手机抓包。

       浏览器的代理设置默认是关着的,win7谷歌浏览器“设置--高级--系统--打开代理服务器--局域网设置--代理服务器”勾上。代理开关为开:可以抓到包,代理开关为关:抓不到包。

前提条件:
       1).电脑需要安装Fiddler
       2).测试手机需要支持Wifi
       3).测试手机与电脑需要同一网络
       4).所测APP需支持代理 

三、设置Fiddler

 菜单:

     Tools-> Fiddler Options->HTTPS, 选中"Decrpt HTTPS traffic",    Fiddler就可以截获HTTPS请求;

    Tools-> Fiddler Options->Connections,勾选"Allow remote computers to connect" , 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来;

         

          注: 8888为默认端口号,可修改,但需注意两点,一是本机空闲端口,二是手机代理设置时端口要一致。

       

       查看本机的ip地址 ;

      打开Fiddler,右上角有一个Online,这里也可以查看IP。如果和电脑的ip不一致时,以这里的为准。

    

四、 手机端进行参数配置

 条件:保证手机和电脑都处于同一个网络。 

 Step1、给手机设置代理

           

    

Step2、打开手机浏览器,输入ip:端口号=192.***.**.***:8888点击前往,见下图:

Step3、打开一个下载证书的页面,如下,点击最下方的“FiddlerRoot certificate”按钮,下载证书。

           

Step4、点击按钮,进入下个页面,出现一个安装文件,点击“安装”。

       

Step5、跳转页面要求设置一个手机密码,就是开机密码,没有就自己设置一个,记住密码就行会。输入开机密码后,出现一个授权证书,如下,点击安装即可。

      

出现“已验证”字样,如下图。表示证书安装成功。

      

五、验证手机抓包

操作手机,电脑fiddler中会显示一些http信息,即为成功 

打开手机的浏览器,输入网址“baidu.com”。查看Fiddler上的有请求数据。结果如下:

 

六:后续问题---fiddler抓不到的情况分析

       01. fiddler并不是支持全部协议

                fiddler并不支持全部协议,目前已知的有http2、tcp、udp、websocket等,如果应用走了以上协议,那么fiddler肯定是抓不到的。

                http2:因为fiddler是基于.net framework实现的,因为.net framework不支持http2,所以fiddler无法抓取http2

        02. 证书写死在app中,fiddler不能抓取

              fiddler抓包的原理是中间人攻击,也就是说,两头瞒,欺骗客户端&&欺骗服务器端,如果https证书写死在app里,也就是说,app不信任fiddler颁发给它的证书,app只信任自己的证书,fiddler没法瞒客户端了,因此fiddler也就抓取不到包了。 
             再多说几句,如果是自己开发的app,开发调试方便起见,可以使用类似wireshark的工具导入服务器证书,抓包解密。

修正不能抓取包问题--除了上述已知不能抓包的情况,其他情况都应该能抓取。以下是排查,修正问题的步骤。

         01. 确认能否抓到手机浏览器的百度首页

              因为百度是https加密的,所以如果配置正确肯定是可以抓到的。注意,我这里说的是三个条件,手机&&浏览器&&百度网页的首页,这些条件,都得满足 。  

        02. 重新安装证书

              如果抓不到,可以确定是配置有问题。核实fiddler使用certmarker插件并且在手机上也安装了;如果已安装,则重新安装。 如果还不work,那么,重新生成证书,电脑和手机都重新安装,然后重启fiddler。一般来说,重新安装手机上的证书就解决问题了。

  

 



猜你喜欢

转载自blog.csdn.net/zhaodj5660/article/details/80843020