一次 XML 上传导致域名被封的经历复盘(腾讯网址安全中心是不是只剩下机器人了)

48 天前
 bugly

事件背景

今年二月为客户开发了一个小程序页面,其中包含用户自定义头像功能。在上传白名单中,我们误将 xml 文件当作 svg 格式放行(后端校验存在疏漏)。不过很快就发现并修复了 bug ,但忽略了这一点竟然已被灰产利用,少数 xml 文件被上传至 OSS 。

问题根源

谁也想不到,这些仅 3KB 大小的 xml 文件中竟含有一行可执行的外部 JS 恶意脚本的代码。它们静静地存储了数月,直到被某些“有缘人”访问触发(看起来访问后会跳转到其他的链接,用来隐藏入口)。

遭遇危机

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

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

事件影响

由于恰好发生在广告投放结束当晚,最后一波流量丢了,客户已印制的二维码物料也全部作废,承担了全部赔偿,这个项目等于白干,还丢了客户信任。

后续还有很多影响吧,一些存量客户的小程序嵌入的网页也因域名封禁无法打开,只能逐一协调迁移、更换域名。这件事已经过去半个月,一些过往案例在微信中也无法打开,我们已放弃申诉,损失惨重。

唉,每年各项业务向微信缴纳了大量的费用,却在需要解决问题的时候求助无门,没有标准文档,没有解决问题的方式,只有冷漠的机器回复。

5280 次点击
所在节点    程序员
58 条回复
kechx
48 天前
深有同感,之前一个小程序也因为一张莫名其妙的图片,被腾讯封了,前前后后耗时一个多月,最终也只是降级到“打开网址会有风险提示”这种程度
NessajCN
48 天前
你希望我们同情一下还是帮你喷一下腾讯呢
你说你「无意」投放了带恶意链接的 xml
姑且先不纠结为啥你们一开始会有这么个 xml,
也信了你们只是菜而不是坏
那既然你们行为确实恶劣影响,恶意脚本也实实在在让很多用户受害
那仅仅封一个域名不是很轻的惩罚了吗,
较真一点可以直接找网安调查一下你们才对。
经济损失也是你们活该
bugly
48 天前
@NessajCN 不知道哪里恶劣了,黑灰产利用漏洞拿 xml 做了跳板,我们同为受害者。
我分享经历只是让大家能注意到这个问题,避免更多人犯同样的低级错误。
tencentcloud
48 天前
尊敬的用户您好,我们非常重视您反馈的问题,并对由此给您带来的不便深表歉意。腾讯云始终致力于为客户提供稳定可靠的服务,对于您遇到的域名封禁及申诉处理问题,我们已第一时间同步内部相关团队进行核查,并将积极协助您推进解决。为确保您的问题得到更高效的处理,请您将腾讯云账号 ID 或域名信息通过(cloud_service@tencent.com) 邮箱发送给我们,感谢您的理解与支持。
tomatocici2333
48 天前
这个更多是你们开发者的问题吧。就不应该开放 svg 的上传..
vace
48 天前
类似于 XXS 的 XXE 漏洞,如果使用 svg 图片作为矢量图要多注意:
https://github.com/rtnthakur/CVE/blob/main/MODX/README.md
JoeJoeJoe
48 天前
最好每个项目都独立域名, 手里最少存一个备案过得应急域名

要不某个项目被风控, 就会牵连一大片项目.
jamel
48 天前
@tencentcloud 你是真的还是假的。v2 里面怎么还有官方???
tencentcloud
48 天前
尊敬的用户您好!经复核您反馈的域名因存在恶意文件触发的安全拦截现已解除。我们对申诉流程中的不好体验深表歉意,后续我们将优化审核机制,提供更清晰的处置指引。若您有任何疑问或建议,请随时通过工单系统联系我们,我们将尽快协助您解决。感谢您的反馈与信任!
python35
48 天前
@jamel 这个应该是真官方 具体能不能解问题就不知道了 这个主题应该发在全球工单系统🤣
xiangbohua
48 天前
@NessajCN 好像 xml 是其他人利用漏洞上传上去的,不是 OP 自己上传上去的,总之这么一想真的还是挺吓人的
lepig
48 天前
上面的 @tencentcloud 已经反馈你们的安全拦截已被解除。 请楼主出来确认一下。
Liuman
48 天前
@NessajCN 我看文中 是 OP 他们上传了一个页面,可以上传头像, 其他人上传了带恶意 js 的 svg 图片,所以导致的问题,不是 OP 投放的链接 XML
devcai
48 天前
腾讯的客服是真的弱 收钱是真的会收 最近注册公司做业务 一个公司四五个认证
微信开放平台 微信服务号 微信公众号 企业微信 小程序 每个都要单独出钱年审, 垄断了没办法。
unused
48 天前
封是真没什么问题,关键是要及时解
lambdaq
48 天前
svg 这个学习了!

小程序嵌入的网页也因域名封禁无法打开 这个最好另外弄个域名跳转,避免牵连
Configuration
48 天前
@tencentcloud 真够讽刺的,官方渠道全是机器人,外部私人论坛倒是有活人盯着!
zturns
48 天前
连 LOL 买皮肤不到账找一圈官网都找不到客服,腾讯系不会再充钱
est
48 天前
@bugly @vace @tomatocici2333 @Liuman

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

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

除非你放到 <object>, <embed>, <iframe> 里,或者直接把 svg 内容嵌入到 .html 的 <svg> 里

LZ 你这个怎么触发的?
est
48 天前
我猜,这个头像,没有在你们 小程序 里出的问题,而是头像资源被嵌入到别的什么页面里引起和你们无关的人访问,然后腾讯把你们域名给牵连了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1158792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX