前言
我的手机是安卓9.0 本来一直用的微信6.0,微信6.0证书随便信任,所以抓包也一直没问题。但是最近测试的时候发现微信版本太低会导致部分小程序打开界面有问题,无奈只能升级到最新微信版本,同时进行了抓包的配置。所以记录了一下。
微信版本对手机系统证书的支持
- 安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书
- 安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书
- 安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表
如何burp抓包
生成证书
1、到处burp的der证书
2、转换证书
1 | openssl x509 -inform der -in cacert.der -out burp.pem |
3、生成hash
1 | openssl x509 -inform PEM -subject_hash_old -in burp.pem |
4、重命名
1 | cp burp.pem 9a5ba575.0 |
倒入证书
1 | adb root |
重启后登陆进入设置中查看证书:portSwigger
如图证书已经装进系统目录
burp抓包
这时候我们设置代理,进行抓包会发现仍无法抓取小程序的包。因为以下规则。
安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表
你可以理解为双向证书绑定了,只信任自己内置的证书,所以我们要向别的app hook证书那样解决这个问题。这里我们直接用前人的工具了:sslunpining
xpose 直接抓这个插件 并hook微信 重启后即可抓包。
这样微信就可以信任第三方证书了,我们的burp就可以抓包了。
当然有能力的大佬可以直接逆微信apk的源码写个frida hook,毕竟第三方工具不一定一直有效。