事件背景
今年二月为客户开发了一个小程序页面,其中包含用户自定义头像功能。在上传白名单中,我们误将 xml 文件当作 svg 格式放行(后端校验存在疏漏)。不过很快就发现并修复了 bug ,但忽略了这一点竟然已被灰产利用,少数 xml 文件被上传至 OSS 。
问题根源
谁也想不到,这些仅 3KB 大小的 xml 文件中竟含有一行可执行的外部 JS 恶意脚本的代码。它们静静地存储了数月,直到被某些“有缘人”访问触发(看起来访问后会跳转到其他的链接,用来隐藏入口)。

遭遇危机
八月,我们为客户上线了一个宣传页面,投放了朋友圈广告。就在投放结束当晚域名突然被腾讯网址安全中心封禁,无法在微信生态中打开。找了三四天客服,只得到回应:拦截来自手机管家,无法直接处理,给了个入口让去申诉,我们尝试了多种方法申诉,比如:

逐个清理资源文件,甚至整个文件夹,刷新 CDN 缓存,再提交申诉;
将客户资源迁移至新的 OSS ,更换解析路线,再次申诉;
甚至在夜里偷偷停止解析域名,再去填写申诉材料都无效。

能想到的所有方案都尝试了,提交的每次申诉,大约 1 小时后,都收到固定的邮件回复:网站存在恶意链接

事件影响
由于恰好发生在广告投放结束当晚,最后一波流量丢了,客户已印制的二维码物料也全部作废,承担了全部赔偿,这个项目等于白干,还丢了客户信任。
后续还有很多影响吧,一些存量客户的小程序嵌入的网页也因域名封禁无法打开,只能逐一协调迁移、更换域名。这件事已经过去半个月,一些过往案例在微信中也无法打开,我们已放弃申诉,损失惨重。
唉,每年各项业务向微信缴纳了大量的费用,却在需要解决问题的时候求助无门,没有标准文档,没有解决问题的方式,只有冷漠的机器回复。

深有同感,之前一个小程序也因为一张莫名其妙的图片,被腾讯封了,前前后后耗时一个多月,最终也只是降级到“打开网址会有风险提示”这种程度

你希望我们同情一下还是帮你喷一下腾讯呢
你说你「无意」投放了带恶意链接的 xml
姑且先不纠结为啥你们一开始会有这么个 xml,
也信了你们只是菜而不是坏
那既然你们行为确实恶劣影响,恶意脚本也实实在在让很多用户受害
那仅仅封一个域名不是很轻的惩罚了吗,
较真一点可以直接找网安调查一下你们才对。
经济损失也是你们活该

不知道哪里恶劣了,黑灰产利用漏洞拿 xml 做了跳板,我们同为受害者。
我分享经历只是让大家能注意到这个问题,避免更多人犯同样的低级错误。

尊敬的用户您好,我们非常重视您反馈的问题,并对由此给您带来的不便深表歉意。腾讯云始终致力于为客户提供稳定可靠的服务,对于您遇到的域名封禁及申诉处理问题,我们已第一时间同步内部相关团队进行核查,并将积极协助您推进解决。为确保您的问题得到更高效的处理,请您将腾讯云账号 ID 或域名信息通过([email protected]) 邮箱发送给我们,感谢您的理解与支持。

这个更多是你们开发者的问题吧。就不应该开放 svg 的上传..

类似于 XXS 的 XXE 漏洞,如果使用 svg 图片作为矢量图要多注意:
github.com/rtnthakur/CVE/blob/main/MODX/README.md

最好每个项目都独立域名, 手里最少存一个备案过得应急域名

要不某个项目被风控, 就会牵连一大片项目.

你是真的还是假的。v2 里面怎么还有官方???

尊敬的用户您好!经复核您反馈的域名因存在恶意文件触发的安全拦截现已解除。我们对申诉流程中的不好体验深表歉意,后续我们将优化审核机制,提供更清晰的处置指引。若您有任何疑问或建议,请随时通过工单系统联系我们,我们将尽快协助您解决。感谢您的反馈与信任!

这个应该是真官方 具体能不能解问题就不知道了 这个主题应该发在全球工单系统🤣

好像 xml 是其他人利用漏洞上传上去的,不是 OP 自己上传上去的,总之这么一想真的还是挺吓人的

上面的 已经反馈你们的安全拦截已被解除。 请楼主出来确认一下。

我看文中 是 OP 他们上传了一个页面,可以上传头像, 其他人上传了带恶意 js 的 svg 图片,所以导致的问题,不是 OP 投放的链接 XML

腾讯的客服是真的弱 收钱是真的会收 最近注册公司做业务 一个公司四五个认证
微信开放平台 微信服务号 微信公众号 企业微信 小程序 每个都要单独出钱年审, 垄断了没办法。

封是真没什么问题,关键是要及时解

svg 这个学习了!

小程序嵌入的网页也因域名封禁无法打开 这个最好另外弄个域名跳转,避免牵连

真够讽刺的,官方渠道全是机器人,外部私人论坛倒是有活人盯着!

连 LOL 买皮肤不到账找一圈官网都找不到客服,腾讯系不会再充钱

有一个技术细节问题,svg 我之前研究过 blog.est.im/2023/stdout-10

svg 如果放到 ,那么浏览器会禁止加载任何外部资源,脚本也禁止执行

除非你放到 , ,