一文带大家了解微信小程序反编译工具wxapkg能够发现哪些安全漏洞

wxapkg 是一款针对微信小程序 .wxapkg 包的反编译工具,支持文件扫描、解密、解包及代码美化功能。通过反编译 wxapkg 文件(工具如 wxappUnpacker、KillWxapkg),黑客可获取完整源码,进而挖掘以下漏洞,所以我们要未雨绸缪,在小程序上线前,检测我们的小程序是否存在安全问题,不给黑客可乘之机!使用wxapkg可以发现的主要漏洞统计如下:
| 攻击类型 | 技术手段与风险案例 | 风险等级 |
|---|---|---|
| 1. 硬编码敏感信息泄露 | - 在 app-service.js 或配置文件中搜索 appid、secret、API 密钥、数据库密码等。- 案例:内测小程序反编译后暴露微信公众号的 AppSecret,攻击者可调用微信接口篡改客服账号。 | ⭐⭐⭐⭐⭐ |
| 2. 加密算法逆向 | - 定位前端加密逻辑(如 AES/DES 的 key、IV),伪造请求签名或解密传输数据。 - 案例:通过反编译找到签名算法,用 mitmproxy 自动重签数据包,绕过服务端校验。 | ⭐⭐⭐⭐ |
| 3. 未授权接口访问 | - 从源码中提取隐藏 API 路径和参数,构造越权请求。 - 案例:发现未鉴权的用户信息查询接口,通过修改 UserID 遍历获取他人数据。 | ⭐⭐⭐⭐⭐ |
| 4. 业务逻辑漏洞 | - 分析代码逻辑缺陷(如支付金额校验缺失、订单状态篡改)。 - 案例:某电商小程序支付时前端验证金额,攻击者篡改价格参数完成0元订单。 | ⭐⭐⭐⭐ |
| 5. 依赖组件漏洞 | - 检查第三方库版本(如旧版 vant-weapp 存在 XSS 漏洞),结合小程序上下文利用。 | ⭐⭐⭐ |
一、环境准备
-
系统要求
仅支持 Windows 系统。 -
下载地址
https://github.com/wux1an/wxapkg
二、获取小程序包(.wxapkg)
方法1:PC 微信自动获取(推荐)
-
在 PC 微信中打开目标小程序(需微信版本支持小程序功能)。
-
进入目录:
C:\Users\{{用户名}}\Documents\WeChat Files\Applet\{{小程序AppID}}\{{随机数字}}\
找到__APP__.wxapkg(主包)或分包文件。
方法2:安卓设备手动获取(需Root)
-
使用 RE文件管理器 进入路径:
/data/data/com.tencent.mm/MicroMsg/{{32位哈希值}}/appbrand/pkg/ -
根据文件修改时间定位目标
.wxapkg文件,导出到电脑。
三、反编译操作步骤
1. 扫描小程序(推荐)
wxapkg.exe scan
-
工具会自动扫描微信目录下所有小程序包。
-
用 键盘上下键 选择目标小程序,按 回车 自动解密并解包。
2. 手动解包指定文件
wxapkg.exe unpack "D:\path\to\__APP__.wxapkg" --wxid=wx1234567890
-
--wxid:小程序的唯一ID(可从文件路径中的AppID文件夹名获取)。 -
若未指定
--wxid,工具会尝试从路径正则匹配,失败则需手动输入。
四、高级参数与功能
| 参数 | 作用 |
|---|---|
--disable-beautify | 禁用代码美化(默认开启美化JS/HTML/JSON) |
-o <输出目录> | 自定义解包输出路径(默认输出到.wxapkg同级目录) |
--verbose | 显示详细日志(调试用) |
五、常见问题解决
-
解包后文件非WXML格式
部分旧版工具输出为HTML而非WXML,需检查工具版本或改用KillWxapkg等工具。 -
依赖缺失报错(如
修改$gwx is not defined)wuWxss.js中的runVM方法(参考代码片段):
let tsandbox = {
__vd_version_info__: "",
$gwx: GwxCfg.prototype["$gwx"],
// ...其他参数
};
-
分包处理失败
主包与分包需分别解包,子包需通过-s参数关联主包路径。
六、注意事项
-
法律风险
反编译仅限安全研究或个人代码恢复,禁止商用或侵权。 -
兼容性
部分加密或混淆的小程序可能解包失败(需更新工具或手动修复)。 -
输出内容
解包后的app-service.js含核心逻辑,page-frame.html含页面结构,需用微信开发者工具导入验证。
总结步骤
-
下载工具并配置环境(Windows)。
-
获取
.wxapkg文件(PC微信或安卓导出)。 -
运行
wxapkg.exe scan或unpack命令。 -
处理报错(依赖/代码适配)。
-
用微信开发者工具导入解包目录测试。
更多推荐
所有评论(0)