
Эксплойт на Python для CVE-2024-4577, уязвимости удаленного выполнения кода в PHP-CGI на платформах Windows с обходом преобразования символов Best-Fit.
PHP — это аббревиатура от Hypertext Preprocessor (гипертекстовый препроцессор), в настоящее время широко используемый открытый язык сценариев, особенно подходящий для веб-разработки и встраивания в HTML. Он очень прост в использовании. CGI (Common Gateway Interface) — это интерфейс, через который Apache при обработке PHP-скриптов передает программу PHP приложению CGI (php-cgi.exe), результат интерпретации возвращается Apache, а затем — соответствующему запросившему пользователю.
При разработке PHP была проигнорирована функция преобразования Best-Fit в Windows. Когда PHP-CGI работает на платформе Windows с использованием определенных локалей (например, упрощенный китайский 936, традиционный китайский 950, японский 932 и т.д.), злоумышленник может сформировать специальную строку запроса. После декодирования URL такие строки могут содержать определенные не-ASCII символы, которые в Windows отображаются как дефисы, что позволяет обойти исправления для CVE-2012-1823 и CVE-2012-2311, сформировать аргументы командной строки в режиме CGI и выполнить произвольный PHP-код.
PHP для Windows 8.3.0 <= затронутая версия < 8.3.8 PHP для Windows 8.2.0 <= затронутая версия < 8.2.20 PHP для Windows 8.1.0 <= затронутая версия < 8.1.29 PHP для Windows затронутая версия == 8.0.x PHP для Windows затронутая версия == 7.x PHP для Windows затронутая версия == 5.x XAMPP для Windows 8.2.0 <= затронутая версия <= 8.2.12 XAMPP для Windows 8.1.0 <= затронутая версия <= 8.1.25 XAMPP для Windows затронутая версия == 8.0.x XAMPP для Windows затронутая версия == 7.x XAMPP для Windows затронутая версия == 5.x
python CVE-2024-4577 --target http://192.168.1.1/index.php -c "<?php system('calc')?>"

Закомментируйте следующую конфигурацию в C:\xampp\apache\conf\extra\httpd-xampp.conf и перезапустите службу:
#
# PHP-CGI setup
#
# <FilesMatch "\.php$">
# SetHandler application/x-httpd-php-cgi
# </FilesMatch>
# <IfModule actions_module>
# Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
# </IfModule>
Закомментируйте в C:/xampp/apache/conf/extra/httpd-xampp.conf:
# ScriptAlias /php-cgi/ "C:/xampp/php/"