微信小程序渗透——反编译小程序
发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370
1、介绍 微信小程序渗透时,因为小程序没有网页端页面,所以不能直接访问抓包分析,如果需要抓包分析,一般就是要么用电脑上的安卓模拟器登录微信利用burp抓包,要么就是用burp抓手机的包,要么就是从手机上直接抓包。具体步骤网上很多,我一般简单的抓包就是ios上用“Stream”这个软件,很方便的就抓包了。 本文主要讲的重点是微信小程序的反编译,因为反编译出来可以看到小程序的前端源码,可以渗透出更多的东西。 2、使用电脑版微信获取小程序的源码 这里直接打开微信存储文件的文件夹 这里的两个wx开头的文件就代表两个小程序,如果之前用电脑版微信打开过小程序,每打开一个小程序,就会创建一个小程序的文件夹,如果你这里有很多的文件夹,你分不清哪个是哪个小程序,那就直接都删掉,然后你去每新打开一个小程序,就会自动生成一个文件夹 我们进入文件夹里面,其实里面就是一个文件,这就是我们小程序的源码,但是是加密的,我们需要对其解密 网上有很多的方法和工具解密,但是我这里演示的是我测试通过的方法和工具 3、使用工具解密源码 解密工具:https://github.com/superBiuBiuMan/wechatMiniAppReverse 这个工具是解密+反编译,所以很方便 工具自带使用方法,但使用方法不全,所以我演示一下 进入1.first文件夹 看到这里用使用方法和一个exe文件 我们用命令行进入这个文件夹,然后输入以下命令(不要直接复制,要改成自己的) pc_wxapkg_decrypt.exe -wxid wx001680b1e33d561c -in C:UserslongDesktop1.wxapkg -out C:UserslongDesktop11.wxapkg 这段命令先是制定了这个文件夹下的exe文件,然后需要输入微信小程序的wxid,这个直接就是复制刚刚那个小程序文件夹的名称即可。然后指定输入文件和输出文件,我这里把刚刚那个加密的小程序复制到了桌面并改成1.wxapkg名字了,这样方便一点。输出文件的路径和名字自己随便取。 提示解密成功就解密好了 4、配置nodejs环境 解密后的源码依然是wxapkg格式,就和压缩包一样,是打包的,所以需要解包 解包需要nodejs支持,如果电脑没有安装nodejs,或者版本比较旧,就需要安装最新版的nodejs https://nodejs.org/en 官网下载安装即可(安装好会自动配置好环境变量) 如果是默认安装路径的话,应该和我这个路径一样,进入这个路径 把nodejs文件夹下面的所有文件复制出来,然后粘贴到刚刚那个工具的2.second文件夹下的nodejs文件夹下 如果提示文件相同冲突,一律选择“替换” 5、使用工具解包 命令行进入如下图这个文件夹,输入 npm install uglify-es 再安装一个 npm install cheerio 提示报错 node:internal/modules/cjs/loader:1078 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:UserslongDesktopwechatMiniAppReverse-mainwechatMiniAppReverse-main2.secondnodejs123.wxapkg 解包完成后,就可以在当前目录下看到解包后的文件夹了 我们可以用vscode打开这个文件夹,然后审计代码了 文章来源:作者:骁隆,转载于作者博客 来源:https://www.onctf.com/ 黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文 END