近期,关于“影子小程序”的讨论在安全圈内逐渐增多。本文旨在分享一个在网络攻防实战中发现的、关于微信小程序的特定攻击面——利用其缓存机制访问已暂停服务的“隐藏资产”。
攻击面背景与发现过程
在2024年11月,我发现部分已声明“暂停服务”的微信小程序,在特定条件下仍可被访问。如下图所示,该小程序在2024年5月29日已被运营方停止服务。

然而,在更早的2024年5月20日,我曾正常访问过该小程序,并将其转发至聊天框。当时通过此资产取得了一定的攻击成果。

对应报告文件:

核心技巧:利用聊天缓存绕过“暂停服务”
参与过攻防演练的朋友都知道,在后续阶段再次测试同一目标时,会验证历史漏洞是否修复。我在2024年11月5日再次测试该资产时,发现通过正常路径访问已被修复。
但是,通过此前保存在聊天记录中的小程序卡片,点击后仍然可以成功加载,并将其缓存到本地。利用这个“影子资产”,我再次获得了一些成果。相关报告截图如下:



这揭示了一个风险:即便小程序后端服务已下线或修复,但曾与用户产生过交互(如转发、收藏),其客户端缓存可能仍残留可供访问的入口,成为“隐藏资产”。
技术实现与限制绕过
此前,为了验证和利用这类资产,我尝试过使用订阅号的“绑定跳转”功能进行跳转测试,但该功能有每月10次的限制,且操作繁琐。



为了更高效地测试,我查阅了微信官方开发文档,发现支持小程序间直接跳转。因此,我开发了一个专用的小程序工具,并将其嵌入公众号菜单,方便在渗透测试过程中快速验证此类缓存资产的可访问性,提升了测试效率。
|