APP渗透—微信小程序、解包反编译、数据抓包
- 1. 前言
- 2. 小程序抓包
- 2.1. 安卓系统5.0版本测试
- 2.1.1. 添加模拟器
- 2.1.2. 安装证书
- 2.1.2.1. 确保在同一局域网
- 2.1.2.2. 设置burp工具
- 2.1.2.3. 设置模拟器代理
- 2.1.2.4. 下载证书
- 2.1.2.5. 修改证书
- 2.1.2.6. 安装证书
- 2.1.3. 抓包测试
- 2.2. 电脑版微信抓包
- 2.2.1. 下载证书
- 2.2.2. 安装证书
- 2.3. 尝试抓包
- 2.3.1. 微信设置代理
- 2.3.2. 登陆微信
- 2.3.3. 抓取小程序
- 2.3.4. 注意事项
- 3. 小程序分包反编译
- 3.1. 小程序缓存目录
- 3.2. 尝试加载小程序
- 3.3. 尝试反编译小程序
- 3.3.1. 安装nodejs
- 3.3.2. 解密小程序
- 3.3.3. 反编译脚本
- 3.3.3.1. 安装依赖
- 3.3.3.2. 执行反编译
- 3.3.4. 查看反编译后文件
- 3.3.5. 查看工程
1. 前言
在之前的第一篇文章中简单的描述了一下微信小程序抓包的过程,但是不是很详细,所以这里单独写一篇关于微信小程序抓包、解包、反编译的一篇文章。
这里对小程序进行抓包、反编译等操作,都是为了进行信息收集,主要就是提取资产进行渗透测试。
2. 小程序抓包
不管是在真机还是模拟器中在安卓系统上抓包,可能会存在以下问题:
- 安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书
- 安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书
- 安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表
相应的解决办法就是如下:
- 将证书安装到系统证书中(需要 root)
- 苹果手机(苹果手机不受此影响)
- 采用安卓系统低于 7.0 的模拟器
2.1. 安卓系统5.0版本测试
这里我使用夜神安卓系统5.0版本进行测试。
2.1.1. 添加模拟器
这里只需要在模拟器助手中点击添加模拟器,选择安卓5即可。

2.1.2. 安装证书
这里使用Burp来进行抓包,至于Fiddler在之前已经提过了,这里就不再提了。
2.1.2.1. 确保在同一局域网
关于如何确保在同一局域网这方面我就不再赘述了,之前的文章中也是多次提到,这里我们直接设置burp工具。
2.1.2.2. 设置burp工具
首先打开burp,添加一个监听端口,这里的监听IP要与你主机的IP是一致的才可以。

2.1.2.3. 设置模拟器代理
这里进入WIFI``长按WIFI``设置代理,这里的IP地址也同样是主机的IP地址,端口需要和burp工具上的端口对应,详细的教程可以看之前的文章,之前的文章中有非常详细的介绍。

2.1.2.4. 下载证书
这里就需要安装burp证书了,访问IP:端口,即可下载证书。

2.1.2.5. 修改证书
证书下载完之后,需要将下载的证书 cacert.der 修改为cacert.cer,否则无法安装证书,下载后打开模拟器共享,就能够看到这个证书了,这里将cacert.der 修改为cacert.cer即可。

2.1.2.6. 安装证书
这里需要提前找到证书存放的位置,可以去按照共享中找一找。

打开设置—安全—从SD卡安装—cacert.cer—设置一个密码—为证书命名—确定—证书就安装了,这里我没截到图,我用之前的图片代替一下。

2.1.3. 抓包测试
在我们把证书按照完成后,就可以进行抓包测试了,这里可以看到已经抓到包了。

2.2. 电脑版微信抓包
在电脑版中进行小程序抓包,其实也是可以的。
2.2.1. 下载证书
这里使用Fiddler来抓电脑版微信小程序的包,由于我看了一下使用burp老是会跳,并不会停留,虽然也能够抓取到,但是一瞬间就消失了,所以还是使用Fiddler来抓取。
这里选择第二个就会在桌面上生成一个证书。

2.2.2. 安装证书
这里需要将Fiddler的证书安装到浏览器中,注意这里安装证书一定要在控制面板中打开internet选择进行安装证书,同时在安装的时候一定要选择受信任的根证书颁发机构,这样安装的证书才有效果。

2.3. 尝试抓包
这里其它的设置,看了那么多篇APP渗透测试,想必一些常见的设置都会了,这里我就不在赘述了,直接开始尝试抓包。
2.3.1. 微信设置代理
这里需要在微信的登陆页面设置代理,IP地址就是你主机的IP地址,端口与Fiddler中设置的是一样的即可,这里点击确定后会自动显示是否能够连接成功,一般都会显示连接成功的,如果显示连接不成功请提前将Fiddler打开。

2.3.2. 登陆微信
这里就只需要登陆微信,在登陆过程中其实就能够看到有很多的数据包了。

2.3.3. 抓取小程序
这里就可以抓取小程序了,不过最好可以将之前的数据包删除,这里可以看到我打开了逆水寒手游,获取到https的信息,那么这样就是获取成功了。

2.3.4. 注意事项
在一些情况下,你会发现之前还是能够获取好好的,突然无法获取了,这个由于你使用电脑版微信在登陆一下小程序后。
这时候就需要将C:\Users\Administrator\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime这个目录下的所有文件夹都清空,这个文件夹主要就是加载小程序的。
这里是我提前删除了。

3. 小程序分包反编译
关于小程序的分包反编译,目前没有特别好的免费工具来进行,好的工具都需要充值vip。
3.1. 小程序缓存目录
找到微信小程序的缓存目录,当然里面会存在很多的文件夹,可以都删除,然后打开一个小程序加载。

3.2. 尝试加载小程序
这里我们只点击一个小程序加载,太多的话容易搞混,在wx开头的文件夹下面会有一个后缀为wxapkg文件,这个文件就是小程序编译后的文件。

3.3. 尝试反编译小程序
这里我们就尝试手动反编译吧,不过会存在问题哦,不一定是百分比能够成功的,毕竟像之前说的好工具是要钱的,尝试找破解版的,但是没用。
3.3.1. 安装nodejs
这里我不知道我是什么时候安装的,可能安装的工具多了就曾经在某一刻是安装过的,这里我就不再安装了,给个连接自行安装吧。
nodejs
安装后打开cmd输入node -v看到显示版本就证明安装成功了。

3.3.2. 解密小程序
这里我们将加密的小程序添加进去,然后在wxpack文件夹中找到刚刚解密的文件夹即可。
解密小程序提取码:tncx

3.3.3. 反编译脚本
打开反编译脚本,将刚刚解密后的文件放入该目录下。
反编译脚本提取码:031b

3.3.3.1. 安装依赖
这里就需要先在反编译脚本目录下安装依赖,这里挺麻烦的,但是没办法呀,穷买不起会员,无法一键反编译。
npm install esprima
npm install css-tree
npm install js-beautify
npm install uglify-es
npm install vm2
npm install cssbeautify

3.3.3.2. 执行反编译
如果上面一切顺利的话就可以执行反编译了。
node wuWxapkg.js wx6642bb131bfd374b.wxapkg

3.3.4. 查看反编译后文件
这里我们就可以在当前目录下查看对应的反编译文件夹了,看到后就可以使用微信开发者工具打开了。
微信开发者工具

3.3.5. 查看工程
到这里就可以将文件加入微信开发者工具的工程中了,不过这里需要申请一个测试账号,非常简单,无需什么麻烦的操作。





![K8S管理系统项目实战[API开发]](https://img-blog.csdnimg.cn/9cbcba376eed4dda99cd3758c7c1c9fe.png)













