声明:本文旨在秉持“分享至上”的原则,公开本人于今年六月发现的一个新型攻击面。
特此说明:
- 本文内容仅供技术交流与学习参考;
- 所涉及工具均未开源,亦不提供下载或使用支持;
- 任何因使用本文所述方法或思路而引发的法律后果,均由使用者自行承担;
- 欢迎转载,但严禁任何形式的抄袭或篡改。

在对微信小程序进行安全测试时,我们常遇到一个现象:明明某企业有小程序,却无法通过微信搜索找到它。这并非小程序不存在,而是由于以下原因被“隐藏”:
小程序尚在审核中;
开发者关闭了“可被搜索”选项;
内容涉及敏感领域,被平台限制收录;
仅为内部员工或特定用户开放。
这类未公开、不可搜索但实际运行的小程序,我们称之为 “影子小程序”。
它们往往缺乏安全防护意识,可能暴露管理后台、调试接口甚至测试数据,成为高价值攻击入口。
那么,如何发现并触达这些“隐形”资产?

尽管小程序运行在微信等封闭生态中,但其后端服务或关联官网几乎都需要完成 ICP 备案。
操作思路:
通过工信部备案系统或第三方平台查询目标企业小程序备案信息;
或者获取其名下所有已备案域名,进行资产收集,检查是否嵌入了小程序跳转功能如 <wx-open-launch-weapp>标签。
关键洞察:备案信息是连接“传统 Web 资产”与“小程序资产”的桥梁。

![]()
微信官方提供了一个强大但常被忽视的 API:
wx.navigateToMiniProgram({
appId: '',
path: 'page/index/index?id=123',
extraData: {
foo: 'bar'
},
envVersion: 'develop',
success(res) {
// 打开成功
}
})核心能力:
只要知道目标小程序的 AppID,即使它未公开、不可搜索,也能从任意已上线的小程序中直接跳转访问。
这意味着:“搜不到” ≠ “不可达”。

AppID 是全局唯一的 18 位字符串(如 wx1234567890abcdef),一旦获得,即可实现定向跳转。常见泄露途径包括:
1
利用已公开的小程序备案数据库(部分第三方平台提供 API);
输入企业名称,自动返回其名下关联的小程序 AppID 列表;
我们已将此类接口本地化,支持一键批量查询。
方法二:从微信公众号抓包提取访问微信公众号平台,通过小程序管理功能点抓包,可从接口中获取到返回的 AppID



wx.navigateToMiniProgram只能在小程序环境中调用。若你没有自有小程序,可采用以下变通方式:
注册一个个人小程序(免费);
在首页代码中写入跳转逻辑,传入目标 AppID;
用于精准验证小程序是否存在及可访问性。

构造一个网页,嵌入微信支持的 URL Scheme 或 Universal Link;
通过短链(如 t.cn)在微信内打开该页面;
页面自动唤起目标小程序。
技术本质:将微信内置浏览器作为“中转站”,绕过必须依赖自有小程序的限制。


通过上述方法,我们已成功跳转至目标“影子小程序”(即未公开、不可搜索但实际存在的小程序)。接下来,便可对其展开更深入的安全测试与攻击面挖掘。
使用团队自研工具对小程序包进行解包;
还原 app-config.json中声明的所有页面路径(如 /pages/admin/index、/pages/debug/tool);
这些路径可能包含未在 UI 中暴露的高危页面。


为避免人工逐页点击,我们采用半自动化方案:
强制开启 PC 微信 F12 调试模式(需特定环境);
在 Console 中注入脚本,循环调用 wx.navigateTo遍历所有路由;
同时配置 Proxifier + Burp Suite,将微信全部流量代理至 Burp。

let a = ["/pages/wechat-fans/index","/pages/index/index"];
let index = 0;
function navigateNext() {
if (index >= a.length) return;
wx.navigateTo({
url: a[index],
success: () => {
index++;
setTimeout(navigateNext, 3000); // 下一次跳转延时 3s
},
fail: () => {
console.error("跳转失败");
}
});
}
// 启动
navigateNext();效果:所有页面加载触发的 API 请求、静态资源、鉴权校验等,均被捕获记录。
面对大量 HTTP 流量,人工筛选效率低下。引入 HaE 插件:
基于正则规则自动高亮并提取业务接口;
快速生成 API 资产清单;
为后续漏洞测试提供精准目标。

小程序核心逻辑通常打包在 app-service.js中,该文件往往存在下面几个问题:
体积大(数万行);
高度压缩与混淆;
包含硬编码密钥、内部接口、跳转逻辑等敏感信息。
人工审计成本极高。
为此我们采用Ai辅助分析
将格式化后的 JS 代码 + 精心设计的 Prompt 输入大模型(如 GPT-4、Claude);
让 AI 帮助完成:
1.识别敏感路由(如含 /admin、/export的路径);
2.提取硬编码凭证(API Key、Token、内网地址);
3.还原页面跳转关系;
4.标记无权限校验的高风险函数。
注意:AI 结果需人工验证,但可将分析时间从数小时压缩至几分钟。


HaE:Burp 插件,用于流量特征提取与高亮;
Venom:综合渗透测试平台,支持资产发现、空间测绘、数据处理;
部分自研工具(未开源)。
所有工具仅限合法授权的安全研究使用。
“影子小程序”是当前企业数字资产中的盲区。它们虽不可见,却可能承载核心业务逻辑、管理功能甚至测试数据。通过备案查询 → AppID 获取 → 跳转验证 → 路由探测 → 接口分析 → AI 辅助 的完整链路,我们能够系统性地发现并评估这类隐藏资产的风险。
安全的价值,在于照亮那些被忽略的角落。
参考信息
https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html