fiddler抓包1-app应用抓包

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述fiddler抓包1-app应用抓包相关的知识,希望能为你提供帮助。
一、抓取app的https协议
      1、fiddler工具配置
在Tools-> Options切换到Tab页HTTPS,勾选下图中箭头指向的复选框,并确认是否缺少协议,若缺少默认的协议,则增加,如缺少; tls1.2,注意分号间隔。
           

fiddler抓包1-app应用抓包

文章图片

    切换到tab页Connections,勾选Allow remote computers to connect。
           
fiddler抓包1-app应用抓包

文章图片

      由于默认的证书不符合andriod和ios的证书要求,所以需要下载CertMaker插件,双击安装后,重启fiddler。注意这一步很重要,必须使用CertMaker插件,不要使用默认的证书生成器,否则抓不到包。
      下载地址:https://www.telerik.com/fiddler/add-ons
           
fiddler抓包1-app应用抓包

文章图片
     
    2、手机设置代理
        首先确保手机与PC在同一个局域网内,鼠标移动到fiddler右上角的Online上,可以查到PC的IP地址
               
fiddler抓包1-app应用抓包

文章图片

      IOS手机:设置-> 无线局域网-> 找到连接的无线网络,设置HTTP代理,服务器填写的要与Online中的IP地址一致,端口填写8888。
安卓手机:设置-> WLAN-> 找到连接的无线网络--> 代理选择"手动"-> 主机名填写的要与Online中的IP地址一致,端口填写8888。
      设置完代理后,打开手机浏览器,地址输入:PC的IP地址:8888(如10.66.88.101:8888),点击最下边的FiddlerRoot certificate,确认安装。
               
fiddler抓包1-app应用抓包

文章图片

IOS手机安装完证书后,在设置-> 通用-> 关于本机-> 证书信任设置,找到刚安装的证书,并打开,如下图。
【fiddler抓包1-app应用抓包】                 
fiddler抓包1-app应用抓包

文章图片

    设置完fiddler工具及手机端的IP代理、证书安装后,一般就可以抓取app端的https的请求数据
               
fiddler抓包1-app应用抓包

文章图片

 
二、经过以上常规设置后,若还是无法捕获https协议
    1、显示Tunnel to...443
          可能原因是IOS的版本为10以上,安卓应用用的是的api 24 以上
        IOS的解决方法:设置-> 常规-> 关于本机-> 证书信任设置,开启fiddler的证书(相当于同意全量监控,所以其他应用不要乱开                    通),  再试试扑包,应该就可以显示了
        安卓api 24以上的解决方法: 安卓没有提供系统层面上的设置,所以只能在应用上下功夫了,需要在应用代码配置中进行配置,相当于开发者留后门,否则只能root设备了,然后绕过证书验证了。严格意义上来说,安卓这是无解的,下面提供代码配置内容
< network-security-config>
< debug-overrides>
< trust-anchors>
< !-- Trust user added CAs while debuggable only -->
< certificates src="https://www.songbingjia.com/android/user" />
< /trust-anchors>
< /debug-config>
< /network-security-config>


三、其他问题
      fiddler捕获不了的情况分析:
            1、fiddler并不是支持所有协议,目前已知的有http2、tcp、udp、websocket等,如果应用使用了以上协议,那么fiddler则无法捕获。fiddler无法捕获http2是因为fiddler是基于.net framework实现的,而.net framework不支持http2。
            2、fiddler抓包的原理是中间人攻击,即两头瞒,欺骗客户端和服务器端,如果https证书写死在app里,也就是,app不信任fiddler颁发给它的证书,app只信任自己的证书,fiddler无法瞒客户端了,因此fiddler也就无法抓包了。如果
是自己开发的app,开发调试方便起见,可以使用类似wireshake工具导入服务器证书,抓包解密。
         
 
四、参考
      fiddler抓包for ios  :https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForiOS

      fiddler抓包for android  :https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureForAndroid
    tunnel to 的完美解决:https://blog.csdn.net/lx_zsdong/article/details/82257698
    https://blog.csdn.net/wang1472jian1110/article/details/79460289
    常见异常解决方法:https://www.cnblogs.com/joshua317/p/8670923.html
    关于android 7.0 无法进行https抓包的问题:https://www.cnblogs.com/wytings/p/6954293.html
 











    推荐阅读