曾經在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框架