Android App 绕过 SSL 证书校验抓包

Feb 23, 2024
针对 OkHttp

OkHttp 介绍

OkHttp 是Square 公司开发的一个开源网络请求库,适用于Android 和Java 应用程序。 它基于HTTP/2 和SPDY 协议,提供了简单易用的API,支持同步和异步请求,并具有拦截器机制,可用于修改请求和响应数据。

识别MitM抓包中的证书错误类型

  • 未安装 burpsuite 证书

打开浏览器,访问 neverssl.com 正常显示,访问 https 网站比如 www.baidu.com 提示不安全

  • 用户模式安装ssl证书

浏览器访问 https 网站正常显示,无提示;App 内连接错误

  • 安装 ssl 证书到系统

大部分 app 自动信任根系统证书,正常抓包;少量 App 配置了 SSL Pinning (证书绑定),只信任特定证书,不信任外部证书

通过工具快速绕过使用 OkHttp 库的 SSL Pinning

快速确认 App 是否使用 OkHttp

Apk拖入任何反编译软件如 jd-gui 然后查看包中是否存在 okhttp3 库,如果存在大概率使用了 OkHttp 处理所有网络连接请求

绕过 SSL Pinning

手机端安装 magisk + frida-server, 电脑端安装 frida, frida-tools, objection

手机端的 frida-server 版本和电脑端的 frida 版本一定要匹配。

快速找到特定 frida 版本方法:

查看手机端 frida-server 版本的发布日期,安装该发布日期前一版的 frida

绕过 ssl pinning

opt 1:

$ frida --codeshare federicodotta/okhttp3-pinning-bypass -f YOUR_BINARY

opt 2:

$ objection -g xxx.xxx explore
objection: android sslpining disable