CVE-2025-60445CVE-2025-60445 是 XunRuiCMS(迅睿CMS)4.7.1 版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞源于系统在处理用户上传文件时,对 SVG 格式文件的验证不足,未能有效过滤 SVG 文件中嵌入的恶意 JavaScript 代码。攻击者可以通过上传精心构造的恶意 SVG 文件,将 JavaScript 代码持久化存储在服务器端。当其他用户或管理员访问包含该恶意 SVG 文件的页面时,浏览器将解析并执行其中嵌入的恶意脚本,从而导致用户会话劫持、敏感信息窃取、钓鱼攻击或其他恶意行为。该漏洞的 CVSS 3.1 评分为 6.1,属于中危级别。攻击者无需认证即可实施攻击,但需要用户交互(如查看上传的文件)才能触发恶意代码执行。漏洞影响数据的机密性和完整性,可能导致用户凭证泄露、会话令牌被盗取等安全风险。该漏洞由安全研究人员在 2025 年 10 月披露,参考链接中包含了详细的技术分析报告。
XunRuiCMS 4.7.1 版本的文件上传组件(dayrui/Fcms/Library/Upload.php)在处理用户上传的文件时,未对 SVG 文件进行充分的安全验证和过滤。SVG(Scalable Vector Graphics)是一种基于 XML 的矢量图形格式,其本身支持嵌入 JavaScript 脚本和事件处理器(如 onload、onclick 等),这使得 SVG 文件可以携带可执行代码。
漏洞的根本原因是 Upload.php 组件在文件上传流程中,仅检查了文件扩展名或 MIME 类型,而未对 SVG 文件内容进行严格的清洗或禁用。攻击者可以创建一个包含恶意 JavaScript 代码的 SVG 文件,例如在 <script> 标签中嵌入代码或使用 SVG 事件处理器(如 <svg onload='alert(document.cookie)'>)。上传成功后,该 SVG 文件被存储在服务器上。当受害者通过浏览器访问该 SVG 文件的 URL 时,浏览器以 image/svg+xml 类型渲染该文件,恶意 JavaScript 代码将在受害者的浏览器上下文中执行。由于这是存储型 XSS,恶意代码会持续存在,每次有用户访问该文件都会触发。
利用方式:
1. 攻击者创建一个包含恶意 JavaScript 的 SVG 文件。
2. 通过系统的文件上传功能上传该 SVG 文件。
3. 获取上传后的文件访问 URL。
4. 诱导受害者(如管理员或其他用户)访问该 URL。
5. 恶意脚本在受害者浏览器中执行,可窃取 Cookie、会话令牌,或执行其他恶意操作。