
Laboratoire de pentest en boîte noire pour la famille de corruptions de mémoire du moteur PHP2Shell (CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2). Chaîne d'attaque vérifiée à double drapeau, calibrée par agent. EN/JP/ZH.
Une cible de capture de drapeau en boîte noire construite autour de PHP2Shell — la famille de corruptions mémoire du moteur PHP de 2026 (CVE-2026-109618 / CVE-2026-109619, CVSS 9.8/9.2, corrigée dans PHP 8.4.27). La vulnérabilité se situe dans le moteur, pas dans l'application : la minuscule couche applicative PHP est volontairement exempte d'injections. Vous devez identifier l'empreinte de l'environnement d'exécution, recouper l'avis de sécurité et choisir la bonne trajectoire. Bloqué ? Solution complète dans docs/SOLUTION.md.
Prérequis : Docker Engine (ou Docker Desktop sous Windows/macOS) avec Compose v2 — c'est tout. Aucune chaîne d'outils PHP n'est nécessaire sur l'hôte. Fonctionne sous Windows 10/11 (WSL2), Linux et macOS ; consultez la note de plateforme ci-dessous pour savoir quelle chaîne d'exploitation votre processeur prend en charge.
git clone https://github.com/taniungou/php2shell-lab.git
cd php2shell-lab
docker compose up -d --build # first build pulls the pinned base image
Ouvrez http://localhost:18901 et connectez-vous avec l'utilisateur demo
(mot de passe change-me-demo) pour accéder à l'application. À partir de là, la machine est
en boîte noire : à vous de découvrir le reste.
Vous voulez vos propres valeurs de drapeaux et mots de passe de comptes ? Modifiez private.ini, puis :
docker compose build \
--build-arg FLAG_LOCAL=flag{...} \
--build-arg FLAG_PROOF=flag{...}
Entretien :
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
Les drapeaux sont au format OverTheWire :
| drapeau | chemin | lisible par |
|---|---|---|
local.txt | /var/www/local.txt | www-data |
proof.txt | /root/proof.txt | root uniquement |
up.proof.txt avec des degrés d'élégance différents. Au moins
un est vérifié en conditions réelles ; un seul passe à l'échelle sur une flotte réelle.Les exploits publics aboutissant à une RCE pour PHP2Shell supposent une disposition du tas du noyau en x86_64. Sur Apple Silicon (et d'autres hôtes aarch64 comme Windows-on-ARM) les primitives de fuite aboutissent mais pas l'exploitation RCE — nous l'avons vérifié sur amd64 sous émulation, arm64 natif, et la configuration de référence des auteurs de l'avis (calif.io/php2shell, Linux x86_64). Sur les hôtes ARM, la solution prévue est la chaîne de divulgation, pas la chaîne RCE — elle fonctionne partout, y compris en x86_64. Détails : docs/PLATFORM-MATRIX.md.
Chaîne d'attaque complète, offsets et transcriptions d'attaque par cycle : docs/SOLUTION.md — protégé contre les spoilers par le fait que cette section se trouve en bas, promis.
MIT — construisez dessus, forkez-le, utilisez-le en formations (attribution appréciée).