0%

微信最新版小程序burp抓包

前言

我的手机是安卓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
2
3
4
5
6
7
8
adb root
adb remount
adb push 9a5ba575.0 /data/local/tmp/ # 直接放系统目录是没权限的

adb shell
su
cp /data/local/tmp/9a5ba575.0 /system/etc/security/cacerts/ # 迁移到系统根证书
chmod 644 9a5ba575.0 # 给权限

重启后登陆进入设置中查看证书:portSwigger

image-20220615180710327

如图证书已经装进系统目录

burp抓包

这时候我们设置代理,进行抓包会发现仍无法抓取小程序的包。因为以下规则。

安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表

你可以理解为双向证书绑定了,只信任自己内置的证书,所以我们要向别的app hook证书那样解决这个问题。这里我们直接用前人的工具了:sslunpining

xpose 直接抓这个插件 并hook微信 重启后即可抓包。

image-20220615181428598

这样微信就可以信任第三方证书了,我们的burp就可以抓包了。

当然有能力的大佬可以直接逆微信apk的源码写个frida hook,毕竟第三方工具不一定一直有效。


采用署名-非商业性使用-相同方式共享 4.0(CC BY-NC-SA 4.0)许可协议
「分享也是一种学习」