Secret Input Header leads to Password Reset Poisoning から学ぶ

ソース:

medium.com

 

脆弱性:Security Misconfiguration, ATO

 

訳:

今日は、キーのないヘッダーを検索することがなぜ重要なのか、そしてそれがどのような結果をもたらす可能性があるのか​​を説明したいと思います。

 

まず、ドメイン (https://example.com/) にアクセスするだけで、すぐに /Portal/Account/LogOn にリダイレクトされます。
アカウントの作成を開始する前に、できるだけ多くの情報を収集したいと思います。
したがって、Web アプリケーションの各レベルでディレクトリをブルートフォース攻撃することから始めます。
/Portal ディレクトリで gobuster を実行すると、次の興味深いサブディレクトリに遭遇します: /redirect

 

コンテンツ検出のために gobuster を実行

/redirect ディレクトリが注目を集めます。
これは、クライアント側のリダイレクトの脆弱性が非常に簡単に見つかる可能性があるためです。
そこで、 https://example.com/Portal/redirect にアクセスすると、次の応答が得られます。 

 

オンサイトリダイレクト

ご覧のとおり、これはオンサイト リダイレクトにすぎず、/Portal ディレクトリに戻ります。
オンサイトとクライアント側のリダイレクトには大きな違いがあるため、それが何であるかわからない場合は、それについて詳しく読むことをお勧めします。

ただし、秘密の URL 入力を見つけることで、オンサイト リダイレクトをクライアント側のリダイレクトに変えることができる場合が何回もあります。
これを行うには、Burp Suite の BApp Store ([拡張機能] タブ) からインストールできる Param Miner を実行する必要があります。

 

パラムマイナー拡張機能

Param Miner をインストールしたら、リクエスト自体から実行できます。
リクエストに移動し、マウスを右クリックして適切な拡張子とオプションを選択し、各ウィンドウで [OK] を押します。

 

Param Miner の実行

その後、拡張機能自体、または Burp Suite の [ダスボード] -> [問題アクティビティ] タブ (シークレット入力が見つかった場合) で出力を見つけることができます。

問題を見ると、秘密のヘッダーが見つかったことがわかります->X-Original-Host これが実際に当てはまることを確認するには、 X-Original-Host ヘッダーを含むリクエストと、それがサーバーの応答にどのような影響を与えるかを調べます。

 

X-Original-Host ヘッダーを含むリクエス

 

応答によりオンサイトリダイレクトが発生します

 

上の図からわかるように、オンサイト リダイレクトで URL のホスト部分を操作できます。
ただし、この攻撃を Web サイトのユーザーに送信することはできないため、これ自体は深刻な脆弱性ではありません。

したがって、アプリケーションの他の部分のテストを続けますが、サーバーの応答でこれを制御できることに注意してください。

 

アプリケーションの外部から完全なコンテンツの検出と列挙を行った後、ユーザーとして登録し、アプリケーションの他の部分のテストを開始します。
登録ユーザーとして、パスワード リセット機能をテストしてみます。

 

パスワードリセット機能

これを以下についてテストしたいと思います。

  • レート制限
  • ユーザーの列挙 (応答の不一致)
  • 弱いパスワード リセット トーク
  • トークンの開示/操作
  • パスワードリセットポイズニング

そのため、すでに登録済みのユーザーとして、パスワード リセットの電子メールをユーザーに送信します。

 

パスワードリセットメール

メールを見てみると、あまり興味深いものはありません。
この Web サイトはリクエストごとに強力な一意のハッシュを使用しており、適切なレート制限があり、一見したところ問題がないように見えます。

Host 」ヘッダー を変更する と(パスワード リセット ポイズニングの一般的な手法) 、サーバーは404 Not Found エラーで応答します。

したがって、 X-Original-Host ヘッダーを追加すると電子メール内の URL が変更されるかどうかを確認しようとします。 

 

Password Reset Request with X-Original-Host header

リクエストを送信すると、URL とトークンを含むパスワード リセット電子メールが届きます。 

 

有害なパスワード リセット メール

上の図からわかるように、URL は実際に Burl Collaborator URL によって汚染されています。

ユーザーがそれをクリックすると、次のことが起こります。

1. Burp Suite Collaborator の Web サイトにリダイレクトされます。

 

Burp Collaborator Web サイト (ユーザーが有害なリンクをクリックした場合)

2. Burp Collaborator エージェントへのコールバック HTTP リクエストを受信します。 

 

Burp Collaborator コールバックでパスワード リセット トークンが漏洩

ご覧のとおり、パスワード要求トークンを正常に取得できます。

この脆弱性アカウント乗っ取り につながります。
「ユーザー名」オプションを使用したパスワード リセット機能を使用して、必要なだけ多くのユーザーを攻撃できます。
ユーザー名ごとに、admin.gj3szzcx9k2k93r62gggrvb3buhl5gt5.oastify.com などの別のサブドメインを追加できます。
これにより、次のようになります。

 

ユーザー名をサブドメインとしてパスワード リセット トークンが漏洩

 

ほなほな。