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

前言

条件

IOS不做探讨。 实验环境 Redmi Note 4X 手机(未ROOT)

MuMu 模拟器 版本:1.9.15

XPosed 和 JustTrustMe 抓包

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

使用这种方法进行抓包的时候要求安卓手机必须需要ROOT。 所以我这里采用网易MuMu模拟器。 官网直接下载MAC版本,安装。Android 内核版本为6.0.1。

先安装XPosed,下载地址为:

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

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

安装Xposed框架。

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

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

下载安装以后。

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

显示Xposed框架成功激活。

接下来下载安装JustTrustMe。后拖进MuMu模拟器即可。 在Xposed install 中选择模块,勾选"JustTrustMe"

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

VirtualXposed 和 JustTrustMe 抓包

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

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

VirtualXposed 下载地址 我这里下载的是0.15.1版本。

安装完成显示Xposed框架为激活状态。 接着下载JustTrustMe,从后,再将JustTrustMe克隆安装在VirtualXposed中,并启用JustTrustMe模块。

Burp CA抓包

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

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终端上依次运行以上命令。

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

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

总结

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

经验分享 程序员 微信小程序 职场和发展