前言
在前天的沙龙上,师傅们积极探讨,期间提出了一些关于app抓包的相关问题。在此小小的总结一波有关的分析以及解决办法。
检测代理
首先是当设置手机代理后,APP无法获取网络数据。会出现无法连接网络的情况出现。这就说明app设置了代理检测。常见的检测代码如下
No Proxy
其次就是通信协议代码中使用了proxy(Proxy.NO_PROXY),即使是设置了代理也是会被绕过的。此时是网络可以正常使用,但是就是抓不到包。这时候可能就是这个原因了。
此时也是可以使用全局系统代理工具,如HttpCanary等工具进行绕过,或者是直接hook该方法。
SSL Pinning证书锁定
抓包时,无法连接网络并且也接收不到任何数据
将APP代码内置仅接受指定域名的证书,而不接受操作系统或者浏览器内置的CA根证书对应的任何证书。通过这种授权方式,保障了APP与服务端通信的唯一性和安全性,因此移动端APP与服务端(例如API网关)之间的通信可以保证绝对的安全。
这种方法有多种实现,比如说开发者将SSL证书的某些字节码硬编码在APP中。当应用程序与服务器通信时,它将检查证书中是否存在相同的字节码。如果存在,则应用程序将请求发送到服务器。如果字节码不匹配,它将抛出SSL证书错误。此技术可防止攻击者使用自己的自签名证书。
这个时候就需要往抓包工具中导入app的证书, 通常在assets文件夹中,.p12 .pem .cer。 然后再hook。不过此时要对抗混淆。
搬运之前的文章https://www.52pojie.cn/thread-1405170-1-1.html
总结
其次最强工具目前就是肉丝师傅的r0capture。
可以通杀任何抓包问题。让天底下没有抓不到的包。在之前的文章中,也提供了一份frida的justTrustme的脚本,可以hook常见的通信协议的代理检测。大家可以用一下测试一下。
最后,求赞求赞求赞!
该文章来源于火线zone社区:https://zone.huoxian.cn/d/440-app