
CVE-2024-4577 EXP
PHP は Hypertext Preprocessor(ハイパーテキストプリプロセッサ)の略で、現在広く使用されているオープンソースのスクリプト言語です。Web 開発や HTML への埋め込みに特に適しており、使い方はとても簡単です。 CGI は英語で Common Gateway Interface(共通ゲートウェイインターフェース)と呼ばれ、Apache が PHP スクリプトを処理する際に PHP プログラムを CGI アプリケーション(php-cgi.exe)に渡して解釈させ、解釈後の結果を Apache に返し、その後対応するリクエストユーザーに返す仕組みです。
PHP は設計上、Windows の Best-Fit 文字変換特性を考慮していません。PHP-CGI が Windows プラットフォーム上で動作し、特定のロケール(簡体字中国語 936、繁体字中国語 950、日本語 932 など)を使用する場合、攻撃者は特別なクエリ文字列を構築できます。URL デコード後、これらの文字列には特定の非 ASCII 文字が含まれる可能性があり、これらの文字は Windows システム上でハイフンにマッピングされます。これにより、CVE-2012-1823 および CVE-2012-2311 のパッチを回避し、CGI モードのコマンドライン引数を構築して、任意の PHP コードを実行できるようになります。
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/"