容器化教学 CTF 实验环境,模拟 CVE-2026-80428(CWE-502 反序列化),供学生和研究人员在安全隔离的环境中进行练习。
教学模拟器,用于演示 CVE-2026-80428 (CWE-502:不可信数据的反序列化)中描述的漏洞机制。
这并非真实的 ILIAS 安装,也并非武器化的漏洞利用 程序包。它是一个完全容器化、隔离的实验室,面向学生、 实习生和安全研究人员。
__destruct() ┌──────────────────────┐
│ CTF HOST │
└──────────┬───────────┘
│ 127.0.0.1:8080
Docker Network (ctfnet)
│
┌───────────────────────┼────────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ ATTACKER │ │ TARGET │ │ OBSERVER │
│ Python/curl │ │ PHP/Apache │ │ Logs/Evidence│
│ PHP CLI │ │ Vulnerable │ │ │
└──────────────┘ │ Emulator │ └──────────────┘
└──────────────┘
可通过 Compose profile patched 在 127.0.0.1:8081 上选择性地启动已修补的目标。
git clone https://github.com/shivammittal2403/cve-2026-80428-ctf.git
cd cve-2026-80428-ctf
cp .env.example .env
docker compose build
docker compose up -d
docker compose ps
攻击者 shell:
docker exec -it cve80428-attacker bash
| 关卡 | 重点 | 分数 |
|---|---|---|
| 1 | 侦察 | 100 |
| 2 | 会话发现 | 150 |
| 3 | PHP 序列化 | 150 |
| 4 | 对象生命周期 / 析构函数 | 200 |
| 5 | 完整攻击链 | 250 |
| 6 | 修复(已修补目标) | 150 |
Unauthenticated Request → LTI (/lti.php) → Session Storage
→ Logout (/logout.php) → unserialize() → Object → __destruct()
→ Controlled write (/drop/) → CTF Flag
参见 docs/ATTACK_FLOW.md。
basename() 写入 /var/www/html/drop/ 下system() / exec() / 反弹 shellmake build && make up
make attacker
make health && make test
make reset
| 文档 | 目标读者 |
|---|---|
docs/STUDENT.md | 学生 |
docs/INSTRUCTOR.md | 讲师 |
docs/VULNERABILITY.md | 真实 CVE 与实验环境的映射 |
docs/ATTACK_FLOW.md | 攻击链示意图 |
docs/REMEDIATION.md | 补丁模式 |
docs/SOLUTIONS.md | 仅限讲师 |
MIT — 仅限教育用途。参见 SECURITY.md。