Xmyronn/CVE-2026-7222-XSS
GitHub: Xmyronn/CVE-2026-7222-XSS
针对 Coaching Management System 中存储型 XSS 漏洞的概念验证,演示了通过投诉功能注入恶意脚本实现跨角色会话劫持与账户接管的完整攻击路径。
Stars: 0 | Forks: 0
### Coaching Management System 中的存储型跨站脚本攻击 (XSS) 导致账户接管
## 产品
Coaching Management System in PHP (Code-Projects.org)
## 受影响的组件
* /modules/student/complaint.php (投诉提交)
* /modules/admin/incomingcomplaint.php (投诉查看)
* 投诉回复功能 (管理员/教师 → 学生)
## 版本
未知(供应商未提供版本信息;基于 2026 年 4 月从 Code-Projects.org 获取的最新可用版本进行测试)
## 漏洞类型
CWE-79: 网页生成期间输入的不当中和(存储型跨站脚本攻击)
## 描述
该应用程序未能正确过滤投诉和回复功能中的用户输入。低权限用户注入的恶意 JavaScript 会被存储下来,并在管理员或教师等高权限用户查看时执行。
此外,回复功能同样存在漏洞,允许管理员或教师注入在学生会话中执行的 JavaScript。
这导致了影响多种用户角色的存储型 XSS 漏洞。
## 复现步骤
### 场景 1: 学生 → 管理员 (权限提升)
1. 以学生身份登录
2. 导航至:
/modules/student/complaint.php
3. 提交包含以下 payload 的投诉:
```
```
4. 以管理员身份登录
5. 导航至:
/modules/admin/incomingcomplaint.php
6. 当管理员查看投诉时,payload 会自动执行
7. 管理员的 Session Cookie 将被发送到攻击者控制的服务器
8. 使用窃取的 Session Cookie 劫持管理员会话
### 场景 2: 管理员 → 学生 (反向 XSS)
1. 以管理员身份登录
2. 使用以下 payload 回复投诉:
```
```
3. 以学生身份登录
4. 查看投诉回复
## 概念验证证据
* 已确认在管理面板中查看恶意投诉时触发了 JavaScript 执行
* 成功通过攻击者控制的服务器窃取 Session Cookie (PHPSESSID)
* 使用窃取的 Cookie 劫持了管理员会话
* 已确认通过回复功能在学生面板中触发了 JavaScript 执行
## 影响
* 低权限用户(学生)可以在管理员上下文中执行任意 JavaScript
* 由于缺少 HttpOnly 标志,导致会话劫持
* 完全接管管理账户
* 双向 XSS 允许破坏多种角色(管理员、教师、学生)
* 完全破坏应用程序的完整性、机密性和可用性
严重程度:CRITICAL
## 根本原因
* 缺乏输入过滤
* 缺少输出编码
* Session Cookie 缺失安全控制(未设置 HttpOnly 标志)
## 修复建议
* 对所有用户输入进行过滤和验证。
* 在 PHP 中使用 htmlspecialchars() 等函数进行输出编码
* 在 Session Cookie 上设置 HttpOnly 和 Secure 标志
* 实施内容安全策略 (CSP)
3. 提交包含以下 payload 的投诉:
```
```
4. 以管理员身份登录
5. 导航至:
/modules/admin/incomingcomplaint.php
6. 当管理员查看投诉时,payload 会自动执行
7. 管理员的 Session Cookie 将被发送到攻击者控制的服务器
8. 使用窃取的 Session Cookie 劫持管理员会话
### 场景 2: 管理员 → 学生 (反向 XSS)
1. 以管理员身份登录
2. 使用以下 payload 回复投诉:
```
标签:CISA项目, Cookie窃取, CWE-79, OpenVAS, PHP, PoC, Web安全, 会话劫持, 协议分析, 存储型XSS, 教育管理系统, 数据可视化, 数据展示, 暴力破解, 权限提升, 漏洞分析, 漏洞复现, 红队, 网络安全, 蓝队分析, 账户接管, 跨站脚本攻击 (XSS), 路径探测, 输入过滤不严, 隐私保护