CVE-2023-53925CVE-2023-53925是UliCMS 2023.1版本中存在的一个高危安全漏洞,属于存储型跨站脚本攻击(Stored Cross-Site Scripting)。该漏洞允许未经认证的攻击者通过UliCMS的文件管理接口上传包含恶意JavaScript代码的SVG文件。由于SVG文件会被存储在服务器上并可能被其他用户访问,当受害者查看这些恶意SVG文件时,嵌入其中的JavaScript代码会在其浏览器上下文中执行。攻击者可以利用此漏洞窃取受害者的会话Cookie、劫持用户账户、进行钓鱼攻击或在受害者浏览器中执行任意操作。存储型XSS相比反射型XSS更为危险,因为恶意代码会被永久存储在服务器上,影响所有访问该内容的用户。UliCMS作为一个内容管理系统,通常会被多个用户访问和使用,这使得该漏洞的潜在影响范围较大。漏洞的CVSS评分为6.1,属于中等严重程度,但由于无需认证即可利用且攻击复杂度较低,实际威胁不容忽视。
该漏洞的根本原因在于UliCMS的文件上传功能缺乏对SVG文件内容的严格安全验证。SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,支持内嵌JavaScript代码(通过script标签或事件处理器)。攻击者可以构造一个包含恶意JavaScript代码的SVG文件,例如使用<script>标签或通过SVG特有的事件属性如onload、onerror等来执行JavaScript。当这个恶意SVG文件通过UliCMS的文件管理界面上传后,它会被存储在服务器的Web可访问目录中。由于缺乏适当的Content-Type头或安全头部设置,浏览器会将SVG文件作为HTML或XML处理,从而执行其中的JavaScript代码。攻击者可以通过诱导其他用户访问该SVG文件的URL来触发恶意代码执行。此外,如果CMS系统在其他页面(如文件列表、帖子内容等)中直接显示或引用上传的文件路径,也会增加攻击面。修复此漏洞需要在服务器端对上传的SVG文件进行内容过滤,禁止包含JavaScript代码的SVG文件上传,或在响应头中设置Content-Disposition: attachment来强制下载而非直接在浏览器中渲染。