IOS部分APP使用burpsuite抓不到包原因
曾经在ios12的时候,iphone通过安装burpsuite的ca证书并开启授权,还可以抓到包,升级到ios13后部分app又回到以前连上代理就断网的情况。
分析:ios(13)+burpsuite(2.1.06)下部分app抓不到网甚至断网
原因:app使用了双向认证或SSL-pinning(证书绑定)
1、大多数可能使用了SSL pinning
SSL Pinning,在开发时就将服务端证书相关信息打包到APP里。在进行HTTPS校验时需要把服务端的证书信息与APP预存的信息做对比,相同则建立通讯,不同则认为存在中间人攻击的可能执行终止通讯的操作。
2、双向认证
APP与服务端分别存放不同的证书,APP在通讯时会校验服务端的证书的一致性,反之,服务端在建立通讯前也要验证APP证书的一致性,验证皆无问题后才建立通讯。
两者相比较,双向认证成本比ssl-pinning成本高,所以大多数情况下看到的app都使用的是ssl pinning。
因为使用了强校验,使用burpsuite的证书无法通过验证,在中间劫持流量抓包则无法进行。
burpsuite在抓取https报文的过程中也提供了双向认证的证书发送,但是默认使用burp提供的证书文件,也就是本地安装的CA证书。app的服务端不认证这个证书的,就需要拿到匹配的证书,以其对服务端进行匹配。
burp提供了这个功能添加证书
这里可以添加打包在app里的ssl-pinning证书,如果授权的测试人员可以直接跟开发要,否则只能逆向app拿到该证书。
安卓可以使用Xposed框架,ios则需要越狱使用Frida框架