Shikata Ga Nai

Private? There is no such things.

How I was able to take over any users account with host header injectionを訳してみた

Hello there, ('ω')ノ

 

ホストヘッダインジェクションを使用してユーザアカウントを引き継ぐ方法を。

 

脆弱性:

 ホストヘッダインジェクション

 

記事:

 https://medium.com/infosec/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2

 

ホストヘッダインジェクションを介して。

他のユーザのパスワードリセットトークンまたは電子メール検証トークンを。

盗むことができるという脆弱性が発生して。

 

ホストヘッダインジェクションとは、リモートの攻撃者が元のホストではなく。

偽のホストを送信することによって送信されたHTTPホストヘッダを。

悪用できる脆弱性で。

 

Tenableによると、「WebアプリケーションでリンクのURIを作成する場合は。

開発者はクライアント側から送信されるHTTPリクエストで利用可能な。

HTTPホストヘッダーに頼ることがよくあって。

リモートの攻撃者は、自分の管理下にあるドメイン名を含む偽のヘッダを。

送信することでこれを悪用し、たとえばWebキャッシュや。

パスワードリセットの電子メールをポイズニングすることができて。」

 

パスワードのリセットフォームは次のようで。

 

f:id:ThisIsOne:20220205114501p:plain

 

入力した電子メールにパスワードリセットトークンが送信されて。

 

f:id:ThisIsOne:20220205114424p:plain

 

メール確認トークンは次のようで。

 http://192.168.1.70/?token={token}です。

f:id:ThisIsOne:20220205114357p:plain

 

パスワードのリセットからホスト名を変更すると。

下記のようなリクエストが表示されて。

 

f:id:ThisIsOne:20220205114333p:plain

 

ホストを192.168.1.70からredacted.comに変更したため。

パスワードリセットトークンのURLが変更されている可能性があって。

 

f:id:ThisIsOne:20220205114311p:plain

 

上記のように、パスワードのリセットURLが変更され、URLは次のようになって。

 192.168.1.70/?token={token}redacted.com/?token={token}

 

ここで、ホストを操作できるので。

リクエストに独自の悪意のあるホストを追加して送信すると。

パスワードリセットトークンをキャプチャできるので。

この攻撃を成功させるには、被害者は自分の受信トレイに。

送信されたパスワードリセットリンクをクリックする必要があって。

被害者がリンクをクリックすると、攻撃者は被害者の。

パスワードリセットトークンを取得して。

これは、被害者が元のサーバリンクではなく。

悪意のあるサーバリンクをクリックしているためで。

 

f:id:ThisIsOne:20220205114239p:plain

 

ここに見られるように、被害者がリンクをクリックすると。

すぐにトークンがリークされて。

 

Best regards, (^^ゞ