
PHP2Shell 엔진 메모리 손상 계열(CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2)을 위한 블랙박스 침투 테스트 랩입니다. 이중 플래그로 검증된 공격 체인이며, 에이전트로 보정되었습니다. EN/JP/ZH.
PHP2Shell을 중심으로 구축된 블랙박스 캡처 더 플래그(CTF) 타깃 — 2026년 PHP 엔진 메모리 손상 취약점 계열(CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2, PHP 8.4.27에서 수정됨). 취약점은 앱이 아닌 엔진에 존재합니다. 작은 PHP 애플리케이션 계층은 의도적으로 인젝션이 없는 깨끗한 상태입니다. 런타임을 핑거프린팅하고, 권고문과 대조한 뒤, 올바른 탄도학을 선택해야 합니다. 막혔다면? 전체 해설은 docs/SOLUTION.md에 있습니다.
사전 요구 사항: Compose v2가 포함된 Docker Engine(또는 Windows/macOS의 Docker Desktop) — 그게 전부입니다. 호스트에 PHP 툴체인은 필요하지 않습니다. Windows 10/11 (WSL2), Linux, macOS에서 동작합니다. CPU가 어떤 익스플로잇 체인을 지원하는지는 아래 플랫폼 관련 안내를 참고하세요.
git clone https://github.com/taniungou/php2shell-lab.git
cd php2shell-lab
docker compose up -d --build # first build pulls the pinned base image
http://localhost:18901을 열고 사용자 demo(비밀번호 change-me-demo)로 로그인하여
앱에 접근하세요. 여기서부터는 블랙박스입니다. 나머지는 직접 알아내야 합니다.
자신만의 플래그 값과 계정 비밀번호를 원하시나요? private.ini를 편집한 후:
docker compose build \
--build-arg FLAG_LOCAL=flag{...} \
--build-arg FLAG_PROOF=flag{...}
관리 명령:
docker compose logs -f # watch the target
docker compose down -v && docker compose up -d --build # full reset (re-arms the leak window)
docker compose down # stop and free resources
플래그는 OverTheWire 스타일입니다:
| flag | path | readable by |
|---|---|---|
local.txt | /var/www/local.txt | www-data |
proof.txt | /root/proof.txt | root only |
up 전까지 영구히 사라집니다.proof.txt로 가는 두 가지 권한 경로가 있으며 우아함 등급이 다릅니다. 최소 하나는
실사격으로 검증되었고, 실제 플릿으로 확장 가능한 것은 하나뿐입니다.PHP2Shell의 공개 RCE 착지 익스플로잇은 x86_64 커널 힙 레이아웃을 가정합니다. Apple Silicon(및 Windows-on-ARM 같은 다른 aarch64 호스트)에서는 누출 프리미티브는 착지하지만 RCE 착지는 되지 않습니다. 우리는 이를 에뮬레이션 환경의 amd64, 네이티브 arm64, 그리고 권고문 저자들의 참조 구성(calif.io/php2shell, x86_64 Linux)에서 검증했습니다. ARM 호스트에서 의도된 해법은 RCE 체인이 아닌 노출 체인입니다. 이는 x86_64를 포함한 모든 환경에서 동작합니다. 자세한 내용: docs/PLATFORM-MATRIX.md.
전체 킬 체인, 오프셋, 라운드별 공격 트랜스크립트: docs/SOLUTION.md — 이 섹션이 맨 아래에 있다는 것으로 스포일러가 보호됩니다, 약속합니다.
MIT — 자유롭게 확장하고, 포크하고, 교육에 사용하세요(출처 표기는 감사히 받겠습니다).