2025年2月20日,网络安全领域发生了一起大规模入侵事件,超过3.5万个网站遭到攻击,攻击者在这些网站中植入了恶意脚本,完全劫持用户的浏览器窗口,并将其重定向至中文赌博平台。此次攻击主要针对使用中文的地区,最终落地页推广的是名为“Kaiyun”的赌博内容。
一、攻击手段解析
1. 恶意脚本的植入与加载
c/side网络安全研究人员发现,攻击者通过在受感染网站的源代码中插入一行简单的脚本标签来实施攻击。该脚本随后会加载更多的恶意代码。初始感染始于插入的脚本标签,其引用的域名包括zuizhongjs[.]com、mlbetjs[.]com、ptfafajs[.]com等。
例如,以下代码被注入到数千个网站中:
受感染网站中注入的恶意脚本代码(来源:Cside)
一旦加载,初始脚本会创建另一个脚本元素,从类似deski.fastcloudcdn[.]com的域名中获取更多恶意代码。这些代码使用了设备检测技术,并在500至1000毫秒之间随机延迟,以规避自动化的安全扫描工具。
2. 浏览器窗口的完全劫持
此次攻击最令人担忧的是其对浏览器窗口的完全控制。研究人员指出,恶意脚本会注入代码,生成一个全屏的iframe,将原始网站内容替换为攻击者的赌博平台。代码创建了一个覆盖整个屏幕的div元素,并从类似“https://www.zuizhongjs[.]com/go/kaiyun1/ky.html”的URL加载内容。
全屏劫持行为,将用户重定向至中文赌博网站(来源:Cside)
二、攻击流程与防范建议
1. 多阶段攻击的实施
此次攻击通过多个阶段的代码执行来实现。在初始脚本加载后,攻击者使用JavaScript函数检测用户的设备类型,判断是否为移动设备或特定操作系统(如iOS)。这使恶意内容的投放更具针对性。例如,代码包含了isMobile()和getIosVersion()等函数,以针对特定设备定制有效载荷。
脚本随后创建一个meta viewport标签,确保恶意内容填满整个屏幕,使用户无法访问原始网站。负责创建全屏覆盖的代码片段包括document.write语句,该语句注入HTML和CSS,将iframe绝对定位在整个页面上。
2. 高级过滤机制
部分攻击变种还被观察到实施了基于地区的过滤机制,根据用户的IP地址显示不同内容,某些用户会看到一条访问被阻止的消息,并被告知联系所谓的支持渠道。这种复杂的过滤机制可能是为了减少安全研究人员的曝光或降低恶意域名的流量。
3. 安全建议
安全专家推测,此次攻击可能与Megalayer漏洞有关。网站所有者应审核其源代码,查找未经授权的脚本标签,通过防火墙规则屏蔽恶意域名,定期检查未经授权的文件修改,实施内容安全策略限制,并使用PublicWWW或URLScan等工具频繁扫描网站,以发现恶意注入。
通过采取这些措施,网站所有者可以更好地保护其平台免受类似攻击的侵害。