一、概述
微信小程序渗透时,因为小程序没有网页端页面,所以不能直接访问抓包分析,如果需要抓包分析,那么一般就是用电脑上的安卓模拟器登录微信利用burp抓包、要么就是用burp抓手机的包、要么就是从手机上直接抓包。方式方法有很多种,个人一般用来抓包的工具也就是IOS上用 Stream软件,或者是Postman等工具很容易就抓包了。
接下来主要介绍的时微信小程序的反编译,因为反编译出来可以看到小程序的前端源码,可以渗透出更多的东西。
二、使用电脑版微信获取小程序源码
具体的操作是这样的:
大概在微信的这个地方
这里直接打开微信存储文件的文件夹
在这个文件夹下以wx
开头的文件就代表一个小程序,如果之前用电脑版微信打开过小程序,每打开一个小程序,就会创建一个以wx
开头的小程序文件夹,如果这个里面有很多文件夹,具体不知道哪个是哪个小程序的,那就直接将所有都删除掉,然后再去重新打开小程序,就会自动生成一个文件夹。
我们进入到文件夹里面,这里面就一个文件,这就是我们小程序的源码,但是呢!这个文件是加密的,我们需要对其解密。
网上有很多的办法和解密工具,接下来就演示一下其中的一个方法。
三、使用工具解密源码
解密工具:https://github.com/superBiuBiuMan/wechatMiniAppReverse
这个工具是解密+反编译 使用起来很方便,工具自带使用方法,接下来看操作
进入1.first
文件夹
看到这里有使用方法和exe文件,我们用命令行进入这个文件夹,然后输入以下命令
pc_wxapkg_decrypt.exe -wxid wxffbeadbd7aa1464d -in C:\Users\Administrator\Desktop\1.wxapkg -out C:\Users\Administrator\Desktop\app.wxapkg
这段命令先是制定了这个文件夹下的exe
文件,然后需要输入小程序的wxid
,这个直接就是复制刚刚那个小程序文件夹的名称即可。然后指定输入文件和输出文件,我这刚刚把加密的小程序复制到了桌面并改名为1.wxapkg
了,这样方便一点,输出文件的路径和名字自行定义。
提示解密成功就解密好了。
四、配置nodejs环境
解密后的源码依然是wxapkg格式,就和压缩包一样,是打包的,所以需要解包。
解包需要nodejs
支持,如果电脑没有安装nodejs,或者版本比较旧,就需要安装最新版的nodejs。
官网直接下载即可(安装完成后会自动配置好环境变量),如果是默认安装的话应该是在这个路径
把nodejs文件夹下面的所有文件复制出来,然后粘贴到刚刚那个工具的2.second文件夹下的nodejs文件夹下(如果提示文件相同冲突,一律选择替换)
五、使用工具解包
命令行进入如下图这个文件夹,输入 npm install uglify-es
再安装一个 npm install cheerio
提示错误信息
node:internal/modules/cjs/loader:1073
throw err;
这个问题的解决方法需要用cnpm安装而不是npm去安装
这个cnpm其实就是淘宝提供的一个镜像服务器,是国内的,比npm国外的稳定
npm config set registry https://registry.npmmirror.com
npm install -g cnpm --registry=https://registry.npmmirror.com
然后输入cnpm -v
看看是否成功配置
然后在输入
cnpm install cheerio
这个时候虽然有报错,但是也是安装成功的
这个cheerio已经成功安装了。
接下来就可以运行工具解包了(需要进入2.second的nodejs文件夹) 提前将解密过的wxapkg文件移动到nodejs文件夹内
node wuWxapkg.js C:\Users\Administrator\Downloads\wechatMiniAppReverse-main\2.second\nodejs\app.wxapkg
解包完成后,就可以在当前目录下看到解包后的文件夹了。
到这里我们就可以用vscode打开这个文件夹,然后就可以进行代审了。
作者水平有限,感谢您的耐心阅读,后续分享更多技术干货!!!