
CVE-2026-80428(CWE-502 デシリアライゼーション)をエミュレートするコンテナ化された教育用CTFラボ。学生や研究者が安全かつ隔離された環境で演習できる。
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 │ └──────────────┘
└──────────────┘
127.0.0.1:8081 上のオプションのパッチ適用済みターゲットは、Compose プロファイル patched で利用できます。
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
Open: http://127.0.0.1:8080/
攻撃者シェル:
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() / リバースシェルはありませんmake 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 を参照してください。