受近期关于小程序“影子资产”的讨论启发,我们得以从新的视角审视小程序安全。这种攻击面的核心在于,存在一些常规搜索无法触及的小程序,但它们可能承载着关键的业务功能。其基本路径为:通过已备案信息查询到对应主体 -> 利用公开接口获取该主体的关联AppID -> 最终通过小程序官方接口实现跳转,从而发现隐藏的测试入口。
这套方法论为我们提供了新的测试思路。在此基础上,结合逆向分析与调试技术,可以进一步深入挖掘小程序的潜在风险。
1. 逆向分析与本地调试
对小程序包进行反编译并尝试本地调试,是一种较为深入的测试方法。逆向得到的源码通常无法直接在微信开发者工具中运行,需要先进行修复。一个高效的策略是借助 AI大模型(如Claude、GLM等),让AI辅助分析并修补逆向后的代码结构,使其能够运行在本地环境中进行动态调试。

2. 利用AppID与Path进行越权访问
在逆向得到的小程序源码中,通常会暴露出大量的页面路径(Path)。我们可以将小程序的唯一标识AppID与这些Path组合,构造出直接的页面访问链接。

如果目标小程序的前后端权限校验存在缺陷(例如仅在前端路由隐藏页面,但后端接口未校验),通过这种方式直接“强跳”到本应无权限访问的页面,就可能实现越权访问。
相关的测试工具和源码可参考以下链接:
https://pan.quark.cn/s/d777ac4e7f24
3. 抓包与调试技巧
- 抓包工具:在移动端进行 渗透测试 时,推荐使用 Proxifier 或 HttpCanary(小黄鸟)等工具。
- 反编译路径:小程序反编译后的包文件存储路径参考:
- Windows:
C:\Users\[用户名]\AppData\Roaming\Tencent\xwechat\radium\Applet\packages
- macOS:
/Users/[用户名]/Library/Containers/com.tencent.xinWeChat/Data/Documents/app_data/radium/Applet/packages
- 开启开发者工具:
- Windows: 可使用开源工具 WMPFDebugger。
- macOS: 目前有效的方法多为降级微信版本并使用旧版调试工具。
- 抓包疑难:部分小程序即使正确安装了抓包证书,依然无法捕获到HTTPS请求。这通常是因为微信客户端使用了私有通信协议。针对这种情况,目前尚无通用的完美解决方案。
通过结合资产发现、逆向分析与接口越权测试,能够更全面地评估小程序的 前端 与后端安全性。
|