当抓包出现如下提示时,我们确定出此APP为服务器校验app客户端证书
对于此类APP抓包而言通常需要完成两项内容:
1、找到证书文件
2、找到证书密码
服务器对客户端进行校验过程中,客户端将证书公钥发送给服务器,以及从服务器获取session和私钥解密过程中,需要API进行操作,API存在于java层框架内,所以hook框架层代码java.security.KeyStore,使密码自吐
# frida -U -f cn.soulapp.android -l ssl.js --no-pause
可以发现我们通过hook框架层代码得到了证书密码 }%2R+OSsjpP!w%X
这时我们还需要拿到证书文件,首先使用常规方式解压搜索app包里的证书文件。
一般apk进行解包,直接过滤搜索后缀名为p12的文件即可,一般常用的命令为tree -NCfhl |grep -i p12,直接打印出p12文件的路径.
如果在安装包内找不到证书的话,也可以进行hookjava.io.File
# android hooking watch class_method java.io.File.$
通过objection hook也可以找到该证书文件。
# objection -g cn.soulapp.android explore --startup-command "android hooking watch class_method java.io.File.$init --dump-args
然后再使用抓包工具点击导入证书(burp同理)
然后进去之后导入p12证书和密码(自吐出的密码}%2R+OSsjpP!w%X) 即可