
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를 참조하세요.