Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-41773 — CVE-2021-41773 ApacheパストラバーサルおよびRCEエクスプロイトの詳細なライトアップ。TryHackMeラボ環境からのステップバイステップのコマンドと根本原因分析付き。 | Kitploit
ツール/GitHubGitHub/johnwickakash12/cve-2021-41773
脆弱性分析エクスプロイトウェブアプリケーション悪用CTF学習と教育ラボと実践
GitHubjohnwickakash12/cve-2021-41773

CVE-2021-41773

CVE-2021-41773 ApacheパストラバーサルおよびRCEエクスプロイトの詳細なライトアップ。TryHackMeラボ環境からのステップバイステップのコマンドと根本原因分析付き。

リポジトリを見る
32ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2021-41773 — Apache パストラバーサル & RCE エクスプロイト

TryHackMe の 「Modern Web Stacks」 ルームの Writeup。mod_cgi が有効な場合にリモートコード実行へとつながる、Apache HTTP Server 2.4.49 のパストラバーサル脆弱性 CVE-2021-41773 の悪用に焦点を当てています。

概要

項目詳細
脆弱性CVE-2021-41773 — Apache 2.4.49 パストラバーサル / RCE
対象サービスポート 8080 上の Apache HTTP Server
影響を受けるバージョンApache/2.4.49 (Unix)
根本原因ap_normalize_path() における正規化順序の欠陥
影響任意ファイル読み取り → mod_cgi 経由のリモートコード実行
使用ツールcurl

脆弱性の概要

Apache 2.4.49 では、ap_normalize_path() による URL の処理方法が変更されました。Apache は、../ を含むリクエストパスをファイルシステムに到達する前にブロックすることになっています。しかし、トラバーサルフィルターは、URL の完全なデコードが行われる前に実行されます。

つまり、二重エンコードされたシーケンス .%2e/ を使用するリクエストは、フィルターによって ../ として認識されません。ところが、Apache がパスを OS に渡すと、.%2e/ は ../ として解決され、トラバーサルフィルターはすでにバイパスされた状態になります。

これ単体でも Web ルート外の任意ファイル読み取りが可能になります。影響が致命的になるのは mod_cgi と組み合わさった場合です。トラバーサルパスが CGI 有効ディレクトリ(例: /cgi-bin/)内の /bin/sh のような実行可能ファイルに解決されると、Apache はそれを CGI スクリプトとして実行し、HTTP POST ボディをその標準入力に渡すため、リモートコマンド実行が可能になります。

手順

1. 脆弱な Server ヘッダーの確認

ターゲットの Server レスポンスヘッダーが以下であることを確認:

root@kitploit:~
Apache/2.4.49 (Unix)

このバージョンは CVE-2021-41773 の直接の影響を受けます。

2. /cgi-bin/ の存在確認

/cgi-bin/ にリクエストを送信し、403 Forbidden レスポンス(404 ではなく)を受信しました。これは、ディレクトリが存在し、mod_cgi が有効である可能性が高いことを示しています — 本 CVE による RCE の前提条件です。

3. パストラバーサルを悪用して RCE を実行

エンコードされたトラバーサルシーケンスを、curl によるクライアント側の正規化を受けずに、入力したとおり正確に送信するため、--path-as-is フラグを指定して curl を使用しました:

root@kitploit:~
curl -s --path-as-is "http://<TARGET_IP>:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh" \
  --data 'echo Content-Type: text/plain; echo; cat /flag.txt'

--path-as-is が必要な理由: デフォルトでは、curl はリクエストを送信する前に URL を正規化し、.%2e/ シーケンスを除去します。--path-as-is は curl に URL を記述されたとおり送信するよう指示し、エンコードされたトラバーサルがそのままサーバーに届くようにします。

4. フラグの取得

ペイロードは /cgi-bin/ からルートファイルシステムまでトラバースし、注入した POST ボディ経由で /bin/sh を CGI スクリプトとして実行し、/flag.txt の内容を返しました。

root@kitploit:~
Flag format confirmed: THM{...}

(フラグは公開 writeup に関する TryHackMe のガイドラインに従い伏せています。)

重要なポイント

  • パッチの順序が重要。 デコード完了前に実行されるセキュリティフィルターは、エンコードのトリックで簡単にバイパスできます — このまさにそのパターン(フィルター→デコード vs デコード→フィルター)は、本件だけでなく、多くのトラバーサル CVE で見られます。
  • mod_cgi + パストラバーサル = RCE。 ファイル読み取りだけでも危険ですが、CGI 実行可能ディレクトリと組み合わさると、コマンド実行になります。
  • テスト中のツールの挙動に注意。 curl のデフォルトの URL 正規化は、送信しようとしているまさにそのペイロードを静かに「修正」してしまいます — エンコードベースのバイパスをテストする際には、--path-as-is(または同等の raw リクエストツール)が不可欠です。

修正・対策

  • Apache を 2.4.51 以降 にアップグレードする(CVE-2021-41773 と関連する CVE-2021-42013 の両方を修正)。
  • 明示的に必要でない限り、mod_cgi を無効化する。
  • ファイル読み取りプリミティブの影響範囲を制限するため、Web サーバープロセスに最小権限の原則を適用する。

参考情報

  • CVE-2021-41773 — NVD
  • TryHackMe — Modern Web Stacks ルーム

本 writeup はラボ環境(TryHackMe)での検証を文書化したものです。許可なくアクセスされたシステムはありません。

ツールをダウンロード