Nginx Alias Traversal は依然として多くのプロジェクトにとって重大な問題です
最近のニュースはそれを壊しました 一部の nginx サーバーは依然として脆弱です テクニック「Nginx エイリアス トラバーサル»これは 2018 年の Blackhat カンファレンスで提案されたもので、aliases ディレクティブで指定されたルート ディレクトリの外側にあるファイルとディレクトリへのアクセスを許可します。
問題の本質 つまり ブロック用のファイル エイリアスディレクティブを使用して 要求されたパスを添付することで提供されます、それを location ディレクティブのマスクと照合し、このマスクで指定されたパスの一部を切り取った後。
問題が現れる 「エイリアス」ディレクティブを使用した構成でのみ、 Nginx 設定と同様に、特定の URL へのアクセスをどのように処理するかを記述することができる「location」と呼ばれるディレクティブがあり、サーバー上のファイルに URL を割り当てるためによく使用されます。
この場所をエイリアスと組み合わせて使用するパターンでは、「場所で指定した URL の末尾にスラッシュを入れない」「指定したパスの末尾にスラッシュを入れない」という XNUMX つの条件が揃っている場合が重要です。 by the alias' が満たされます。alias ' が満たされます。 脆弱性が発生すると言われています。
BlackHat 2018 カンファレンスで、Orange Tsai 氏は URL パーサーの破壊に関する研究を発表しました。 他の印象的な発見の中でも、彼は @iaklis によって作成された、2016 年の HCTF CTF チャレンジで発見されたテクニックをデモンストレーションしました。
この手法を適用するには、次の条件を満たす必要があります。
location ディレクティブのパスにはスラッシュを含めることはできません。
エイリアス ディレクティブはロケーション コンテキスト内に存在し、スラッシュで終わる必要があります。
上に示した脆弱な構成の例では、攻撃者はファイル「/img../test.txt」をリクエストすることができ、このリクエストは場所「/img」で指定されたマスクと一致し、その後キューに残りの「. ./test.txt" がエイリアス ディレクティブ パス "/var/images/" に追加され、その結果ファイル "/var/images/../test.txt" が要求されます。
したがって、攻撃者は、「/var/images/」内のファイルだけでなく、「/var」ディレクトリ内の任意のファイルにアクセスできます。たとえば、nginx ログをダウンロードするには、リクエスト「/img ../log/nginx」を送信できます。 /access.log」。
分析 GitHub のリポジトリから 問題の原因となったnginx設定のエラーが実際のプロジェクトにまだ残っていることを示しました.
たとえば、Bitwarden パスワード マネージャー バックエンドで問題が見つかり、この問題が /etc/bitwarden ディレクトリ (/attachments のリクエストは /etc/bitwarden/attachments/ から発行された) ディレクトリ内のすべてのファイル (そこに保存されているデータベースを含む) にアクセスするために使用される可能性がありました。パスワード「vault.db」、証明書、ログが含まれており、リクエスト「vault.db」、「identity.pfx」、「api.log」などを送信するだけで十分です。
と言われています この脆弱性の重大度はプロジェクトによって大きく変動する可能性があります、無視できる影響から重大な影響まで。 その影響の範囲は主に、公開されたディレクトリにさらなる攻撃を促進したり、個人情報の漏洩につながる可能性のある機密データが含まれているかどうかによって決まります。
この脆弱性の調査の開始点として、この問題が発生している人気のある GitHub リポジトリを調査することにしました。 ソース コードにアクセスできる環境でこの特定の脆弱性を特定することは、主に次の XNUMX つの主な要因により、大幅に実現可能になります。
検出 – 正規表現検索などの単純なコード分析ツールを使用すると、これらのプロジェクト内の潜在的に脆弱な Nginx 構成ファイルを効果的に特定できます。
悪用: エイリアスが割り当てられた正確なターゲット ディレクトリがわかれば、ローカル インスタンスをセットアップし、ローカル シェルを使用してエイリアスが設定されたディレクトリを調べ、脆弱性を介してどのファイルにアクセスできるかを判断できます。
このメソッドは Google HPC ツールキットでも機能し、秘密キーと資格情報を含むデータベースを取得するためにリクエストが目的のディレクトリにリダイレクトされ、攻撃者が「secret_key」および「db.sqlite3」クエリを送信する可能性があることは言及する価値があります。
最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。