
Black-Box-Pentest-Labor für die Memory-Corruption-Familie der PHP2Shell-Engine (CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2). Dual-Flag-verifizierte Angriffskette, agentenkalibriert. EN/JP/ZH.
Ein Black-Box-Capture-the-Flag-Ziel rund um PHP2Shell — die PHP-Engine-Familie von Speicherkorruption aus dem Jahr 2026 (CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2, behoben in PHP 8.4.27). Die Schwachstelle liegt in der Engine, nicht in der App: Die winzige PHP-Anwendungsschicht ist absichtlich frei von Injection-Schwachstellen. Du musst die Laufzeitumgebung fingerprinten, den Advisory zuordnen und die richtige Ballistik wählen. Festgefahren? Vollständige Schritt-für-Schritt-Lösung in docs/SOLUTION.md.
Voraussetzungen: Docker Engine (oder Docker Desktop unter Windows/macOS) mit Compose v2 — das ist alles. Keine PHP-Toolchain auf dem Host nötig. Funktioniert unter Windows 10/11 (WSL2), Linux und macOS; siehe den Plattformhinweis unten, welche Exploit-Kette deine CPU unterstützt.
git clone https://github.com/tani2shell/php2shell-lab.git
cd php2shell-lab
docker compose up -d --build # first build pulls the pinned base image
Öffne http://localhost:18901 und melde dich als Benutzer demo an (Passwort change-me-demo), um zur App zu gelangen. Ab hier ist die Box Black-Box: Finde den Rest selbst heraus.
Möchtest du eigene Flag-Werte und Kontopasswörter? Bearbeite private.ini, dann:
docker compose build \
--build-arg FLAG_LOCAL=flag{...} \
--build-arg FLAG_PROOF=flag{...}
Hauswirtschaft:
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
Flags sind im OverTheWire-Stil:
| flag | path | readable by |
|---|---|---|
local.txt | /var/www/local.txt | www-data |
proof.txt | /root/proof.txt | root only |
up.proof.txt mit unterschiedlichen Eleganznoten. Mindestens einer ist durch Live-Fire verifiziert; nur einer skaliert auf eine echte Flotte.Die öffentlichen RCE-landenden Exploits für PHP2Shell setzen ein x86_64-Kernel-Heap-Layout voraus. Auf Apple Silicon (und anderen aarch64-Hosts wie Windows-on-ARM) landen die Leak-Primitive, aber die RCE-Landung nicht — wir haben dies über amd64-unter-Emulation, arm64-native und die Referenzkonfiguration der Advisory-Autoren (calif.io/php2shell, x86_64 Linux) hinweg verifiziert. Auf ARM-Hosts ist die beabsichtigte Lösung die Disclosure-Kette, nicht die RCE-Kette — sie funktioniert überall, auch auf x86_64. Details: docs/PLATFORM-MATRIX.md.
Vollständige Kill Chain, Offsets und Angriffstranskripte pro Runde: docs/SOLUTION.md — spoiler-geschützt dadurch, dass dieser Abschnitt ganz unten steht, versprochen.
MIT — baue darauf auf, forke es, nutze es in Trainings (Attribution geschätzt).