
カスタムPython PoCを使用し、制御されたパストラバーサルとファイル開示によってCVE-2021-41773 (Apache HTTP Server 2.4.49) を再現するためのDockerベースのラボ。
Apache HTTP Server 2.4.49 のパストラバーサル脆弱性 CVE-2021-41773 の再現。
このプロジェクトは、Docker を使用して隔離された脆弱な環境を作成し、Python の PoC を使用して制御されたファイル開示を実証します。
安全上の注意: この PoC は
localhost、127.0.0.1、または::1のターゲットのみを受け付けます。テストは隔離されたラボ内でのみ実施してください。
このプロジェクトは以下を実証します:
このデモンストレーションは、リモートコード実行ではなく ファイル開示 に焦点を当てています。
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
PoC は Python の標準ライブラリのみを使用し、サードパーティ製の Python パッケージを必要としません。
リポジトリのルートディレクトリから実行:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
このターミナルは実行したままにしてください。
Apache サービスは次のアドレスでのみ公開されます:
127.0.0.1:8080
別のターミナルで:
docker ps
コンテナに次の表示が確認できるはずです:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
期待される出力:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
Apache のテストページが返されるはずです。
PoC は次の場所にあります:
exploit/exploit.py
実行:
python3 exploit/exploit.py
デフォルトのターゲットは:
http://127.0.0.1:8080
デフォルトの証明ファイルは:
/lab/secret.txt
実行が成功すると、次の出力が得られます:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
その後、PoC は制御されたラボファイルの内容を表示します。
PoC はまず、ターゲットがローカルアドレスであることを確認します:
localhost
127.0.0.1
::1
次に、エンコードされたトラバーサルコンポーネントを含むパスを構築します:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
リクエストは Python の標準 socket モジュールを使用して送信されます。これにより、PoC は HTTP リクエストパスを直接制御できます。
脆弱な Apache 2.4.49 サーバーは細工されたパスを処理し、次のファイルの内容を返します:
/lab/secret.txt
このファイルを取得できることで、パストラバーサルと制御されたファイル開示が確認されます。
CVE: CVE-2021-41773
製品: Apache HTTP Server
実証した影響を受けるバージョン: 2.4.49
脆弱性の種類: パストラバーサル / ファイル開示
CVE-2021-41773 は、Apache HTTP Server 2.4.49 のパストラバーサル脆弱性です。特別に細工された URL により、意図されたパス制限を回避し、想定されたディレクトリ外のファイルへのアクセスが可能になります。
特定の構成では、この脆弱性はより深刻な影響を及ぼす可能性があります。このプロジェクトは、隔離された Docker 環境における制御されたファイル開示を意図的に実証するものです。
テスト中に収集したスクリーンショットは次の場所に保存されます:
evidence/
証跡には以下が含まれます:
主な緩和策は、Apache HTTP Server を修正済みバージョンにアップグレードすることです。
追加の防御策は以下のとおりです:
Apache HTTP Server セキュリティ勧告: https://httpd.apache.org/security/vulnerabilities_24.html
NIST 国家脆弱性データベース: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
CERT-EU セキュリティ勧告: https://cert.europa.eu/publications/security-advisories/2021-054/
このプロジェクトは、許可されたセキュリティ教育および管理されたラボテストのみを目的としています。
Docker 環境と PoC はローカルテスト用に設計されています。自分が所有していない、または評価する明示的な許可を得ていないシステムに対して PoC を使用しないでください。