目录

抓取微信小程序数据包的三种方法

抓取微信小程序数据包的三种方法

前言

做安全测试的都会遇到测试某微信小程序,而微信小程序基本都是基于HTTPS的,所以抓取HTTPS数据包就是最关键的一步。最近几天折腾了一下,整理了比较简单、方便的三种方法。

条件

抓取微信小程序数据包的关键点,就是SSL证书绑定的问题。

在安卓系统7.0以下的版本,不管微信是什么版本,都会信任系统提供的证书,而现在微信版本已经到了7.0.15 且安装老版本也会强制用户升级,且微信只信任系统及自身内置的证书。

具体如下

安卓系统7.0以下:微信的任意版本,都会信任用户提供的证书
安卓系统7.0以上:微信7.0以下版本,微信会信任用户提供的证书
安卓系统7.0以上:微信7.0以上版本,微信只信任系统及自身内置的证书

IOS不做探讨。

实验环境

Redmi Note 4X 手机(未ROOT)

Android 手机:MIUI 11.0.2
Android 内核版本:7.0
微信:WeChat 7.0.15

MuMu 模拟器 版本:1.9.15

Android 内核版本:6.0.1
微信:WeChat 7.0.10
VirtualXposed :0.15.1

XPosed 和 JustTrustMe 抓包

简介:XPosed 是一个框架,用来改变系统的某些关键操作。JustTrustMe 用来禁用、绕过SSL 证书验证。

使用这种方法进行抓包的时候要求安卓手机必须需要ROOT。

所以我这里采用网易MuMu模拟器。

官网直接下载MAC版本,安装。Android 内核版本为6.0.1。

https://i-blog.csdnimg.cn/blog_migrate/d9da1c0f00a6bc1cfd87a226669a1826.png

先安装XPosed,下载地址为:

https://i-blog.csdnimg.cn/blog_migrate/d7f4bab7b1e4533752c77c34879f55ec.png

Android 版本5.0 以上点击该链接。

https://i-blog.csdnimg.cn/blog_migrate/74b00e2efe6a6b4136a7419970eec58a.png

来到该页面。点击apk下载并安装到网易MuMu模拟器。

https://i-blog.csdnimg.cn/blog_migrate/d23dadace585dffbcb13f0fbf9869717.png

安装Xposed框架。

https://i-blog.csdnimg.cn/blog_migrate/6fa0d2237e9833b85089d07e2a8a0e8f.png

注意这里设置MuMu开启ROOT权限。否则安装不成功。

https://i-blog.csdnimg.cn/blog_migrate/55ac6b5f5e9cfc640ff5c8c213fc80d1.png

勾选"开启ROOT权限"。解决"Failed to get root access"错误。

https://i-blog.csdnimg.cn/blog_migrate/a642cd84ca962963d96b319b8606364f.png

下载安装以后。

https://i-blog.csdnimg.cn/blog_migrate/3739b779f83b1d8f88ae2a9993ec004e.png

点击"允许",之后重启设备。

https://i-blog.csdnimg.cn/blog_migrate/b9e6eee89a97fd3dd54791df50fcd66b.png

https://i-blog.csdnimg.cn/blog_migrate/2f6d44b7ef97650ce5408db1e187f29e.png

显示Xposed框架成功激活。

接下来下载安装JustTrustMe。 后拖进MuMu模拟器即可。

在Xposed install 中选择模块,勾选"JustTrustMe"

https://i-blog.csdnimg.cn/blog_migrate/06c99aef4942f08d4a7cb7fc0e098534.png

重启设备后即可抓取微信小程序数据包。

配置手动代理。

https://i-blog.csdnimg.cn/blog_migrate/4e53e9e4669dcf4dd82d5686bb80452d.png

burpsuite添加Proxy。即可抓取数据包。

https://i-blog.csdnimg.cn/blog_migrate/e69bb857750b3211ca6861785a06483a.png

VirtualXposed 和 JustTrustMe 抓包

简介:和上一种方法原理一样。都是利用的Xposed框架和JustTrustMe模块。只不过可以在非ROOT环境下运行。这是因为VirtualXposed是基于VirtualApp和epic在非ROOT环境下运行Xposed框架的实现。

我这里选择安装在红米非ROOT的安卓手机上。

https://i-blog.csdnimg.cn/blog_migrate/fde0cc6ffaefb8d061e618eaaaa34d2d.png

VirtualXposed 下载地址

我这里下载的是0.15.1版本。

https://i-blog.csdnimg.cn/blog_migrate/7b6d7a0cb9475f73fbd707ab18d1bffe.png

安装完成显示Xposed框架为激活状态。

接着下载JustTrustMe,从 后,再将JustTrustMe克隆安装在VirtualXposed中,并启用JustTrustMe模块。

https://i-blog.csdnimg.cn/blog_migrate/81982960a918175c87407b25ccca32db.png

https://i-blog.csdnimg.cn/blog_migrate/92d5c050239ac11bb9ea0db4353983cb.png

重启设备。再将需要抓取数据包的app(微信)克隆到VirtualXposed中。

https://i-blog.csdnimg.cn/blog_migrate/5ddf61a3e7d5ae03fc01e36b4afce702.png

https://i-blog.csdnimg.cn/blog_migrate/791427de0d698d03ef1c1e99bbb09324.png

打开微信的小程序。

并在手机的网络上配置代理。burpsuite抓包即可。

https://i-blog.csdnimg.cn/blog_migrate/561afc0b0f102c90ee48dea4d66d7782.png

https://i-blog.csdnimg.cn/blog_migrate/561afc0b0f102c90ee48dea4d66d7782.png

https://i-blog.csdnimg.cn/blog_migrate/b096a31d5aa5c85f2f81fe998dfad2ef.png

坑点

在VirtualXposed打开微信时,有可能提示"打开应用 com.tencent.mm 失败"。尝试从老版本微信更新 有可能 解决该问题。

Burp CA抓包

简介:在一台已经ROOT环境的设备上,如模拟器,把burp CA证书安装在系统可信任证书中,来抓取微信小程序的数据包。条件是 微信版本7.0以下

先导出burp CA证书,以DER格式导出CA证书,保存为cacert.der。

https://i-blog.csdnimg.cn/blog_migrate/faa85eb51488237297a3dab5f8e0e698.png

https://i-blog.csdnimg.cn/blog_migrate/42e135f649f553baaf710ce82cfbd231.png

Android使用PEM格式的证书,并且文件名为subject_hash_old值并以.0结尾,存储在/system/etc/security/cacerts目录下。我们需要使用openssl工具将DER转换成PEM,然后输出subject_hash_old并重命名该文件。

命令为

openssl x509 -inform DER -in cacert.der -out cacert.pem  
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1  
mv cacert.pem <hash>.0 

在MAC终端上依次运行以上命令。

https://i-blog.csdnimg.cn/blog_migrate/ebe7bb91b4f028fd9c4cdf2b5db5551a.png

本地就会输出9a5ba575.0文件。

https://i-blog.csdnimg.cn/blog_migrate/71ed749969a104d05c726e2088d26897.png

然后将该证书文件拷贝到MuMu模拟器的/system/etc/security/cacerts 目录下。

https://i-blog.csdnimg.cn/blog_migrate/a2a37975823932ada8afd7d533b20b8f.png

配置网络代理,burp即可抓取微信小程序数据包。

https://i-blog.csdnimg.cn/blog_migrate/0835bf9b8fd6a76526d17566d0eb60e9.png

注意:这里测试的是微信 6.6.0版本(从PP助手的历史版本下载来的)。测试微信7.0版本无法抓取HTTPS数据包。

总结

力所能及,没有太复杂的流程,但这三种方法也并非完全的一劳永逸。

作者:CSeroad

链接:https://www.jianshu.com/p/dfea1a84bb3b

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。