微信小程序抓包到源码分析
0x01 受信任的根证书配置
安卓7以上,系统不信任用户证书,因此我们将证书放进系统中,让系统信任即可抓包。
首先需要配置抓包环境,安卓模拟器是少不了的,我们选择夜神模拟器
夜神模拟器启用android 9版本,这里需要注意一点,检查设置里是否开启root,没有开启的先打开root,然后重启模拟器
然后下载一个apk软件 https://cowtransfer.com/s/9794ead1113d47
安装到模拟器里面,启动。
输入命令inmagisk 回车
再输入命令 y
索要root权限的窗口,勾选永久记住 运行
再输入命令 1
再输入命令 a
再输入命令 1
最终有一行黄色提示,
***TO MENU
就是成功。
重启模拟器即可。
可以把模拟器设置上的开启ROOT关掉了,因为不需要了。 参考: https://www.bilibili.com/read/cv16105861
然后先安装好微信和MT管理器,这俩都能在网上搜到。接下来启动burp,浏览器代理设置为burp的监听端口,输入http://127.0.0.1:8080导出burp的证书到桌面上(这里导出的证书后缀名为.der,将其后缀重命名为.cer),然后将该证书导入linux的虚拟机中,启动终端输入如下命令:
openssl x509 -inform DER -subject_hash_old -in cacert.cer
将上面框起来的计算结果复制下来,接着输入如下命令:
openssl x509 -inform DER -text -in cacert.cer > 9a5ba575.0
输入完成后会在生成一个 9a5ba575.0 的文件,我们编辑这个文件,将之前框选的内容下面的证书信息粘贴在这个文件的最前面,如图:
这样安卓的一个根证书便生成了,接下来我们点击安卓模拟器右侧中间的小按钮,将处理过后的 9a5ba575.0 文件导入下图中打开的文件夹里的ImageShare目录下
然后使用事先安装好的MT管理器,左侧进入:/storage/emulated/0/Pictures/ ,右侧进入:/system/etc/security/cacerts/ ,然后长按左侧的 9a5ba575.0 文件,点击复制:
这里建议重启一下安卓模拟器,如此受信任根证书便装好了,如果还是抓不到包,可以再在安卓模拟器中单独放一个burp的证书,改后缀为.cer,然后用安卓模拟器自带的Amaze文件管理器安装一下。
0x02 小程序抓包
配置好证书后,只需要查看一下本机IP地址,输入 ipconfig 查看:
在burp中设置好代理,如下:
接下来,在安卓模拟器中打开设置-wifi,然后编辑WiFi,如下:
然后登录微信,开始愉快的抓包:
0x03 小程序源码dump
在MT管理器中进入/data/data/com.tencent.mm/MicroMsg中,为了确保拿到的就是要抓包的小程序的源码,将该文件夹下以32位字符编码命名的文件夹删掉,再回到小程序点击小程序右上角第二个按钮,点击后再点击重新进入小程序,此时再在MT管理器中回到该目录下,可以发现只剩一个以32位字符编码命名的文件夹,进去后再进入appbrand/pkg目录下,看到如下图所示:
然后将其中内存较大的wxapkg包复制到/storage/emulated/0/Pictures/目录下,然后我们进入安卓模拟器与电脑交换空间的ImageShare目录下,将该文件拷贝到桌面,方便我们一会儿查找。接下来我们去github找一个wxappUnpacker,下载源码下来,看一下readme安装好环境后,我们执行:
node wuWxapkg.js C:UsersusersDesktop_1088601496_17.wxapkg
看到如上图所示,便可以在vscode里翻看对应小程序的源码了
原文始发于微信公众号(0xh4ck3r):微信小程序抓包方式
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论