
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/tani2shell/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 — 자유롭게 확장하고, 포크하고, 교육에 사용하세요(출처 표기는 감사히 받겠습니다).