抓包进阶之双端校验
挂上vpn,打开charles抓包可以看到没网络,但是可以抓到包,怀疑是服务器校验客户端证书了
这里推荐一下肉老师的文章 https://www.anquanke.com/post/id/197657
引用里面一张图
原本服务器校验的是app的证书,但是挂上charles,服务器校验的是charles的证书,一匹配发现不是app的证书,就返回网络失败,所以我们要将app中内置的证书导入到Charles中去。
这个操作通常需要完成两项内容:
- 找到证书文件
- 找到证书密码
首先找证书文件,直接对apk进行解包,直接过滤搜索后缀名为p12的文件即可,一般常用的命令为tree -NCfhl |grep -i p12,直接打印出p12文件的路径
找证书密码一般解密会调用现成的API,java.security.KeyStore ,直接使用frida打印出来,
也可以hook系统文件库,这里直接使用现成的代码,
1 | function hook_KeyStore_load() { |
使用spawn的模式启动,密码一下子就吐出来了
把证书导入到charles,并输入刚才的密码
再次抓包试试,这次页面跳转了,请求也是正常了
评论