记录一次绕过 Android 服务端的证书校验的详细过程
· 阅读需 13 分钟
声明
本文版权归原作者所有,转载请注明出处。
前言
本来想挑一个 APP 抓包练练手,因为基础不是很好,想提升实战水平,结果一不小心挑了个不寻常的(对于我而言,大佬勿喷),但因为自己比较固执,不死心,花了几天时间总算搞定了,但还是有些问题,希望有懂行大佬指点一下。
该 APP 使用了 org.conscrypt
库,据了解,这一个封装基于 OpenSSL
的库,在 Github
上也有 1.3k Star
但是网上并没有相关的文章,很少,最终还是通过翻阅源码找到一个关键的 So
层函数作为 Hook
点将私钥导出。
本文章 Hook
脚本均参考了网上的文章以及借助 ChatGPT
所编写,并且经过许多次调试,因为自己不是特别熟悉 frida JS API
,还需要多练,多实战,因此写了这篇文章记录自己的过程,以分享自己的思路,给有需要的人一些参考,避免踩坑。
详细过程
设置代理
目前手机已 root
,已安装 Burp
证书至系统,当然用 JustTrustMe
也可以干掉客户端的证书校验,比较简单也没检测 VPN
,随后开启热点,使用安卓端 proxifier
开启 VPN 让指定 APP 走 Burp
:
设置 Burp
代理:
指定 APP
:
发现服务端的证书校验
进入 APP
,发现一切正常:
在输入框中随便输入,点击加入,服务端返回 400,并且是 No required SLL certifucate was sent
: