Hello there, ('ω')ノ
アカウント乗っ取りへのホスト ヘッダ インジェクション を。
脆弱性:
ホスト ヘッダ インジェクション
記事:
今回は、ホスト ヘッダ インジェクションとは何か、
ホスト ヘッダ インジェクションを見つける方法、
ホスト ヘッダ インジェクションを見つけて任意のアカウントを乗っ取り、
$$$$ を稼いだ方法について。
ホストヘッダインジェクションとは、Host ヘッダの値を安全でない方法で
処理する Web サイトで発生し。
サーバが暗黙的に Host ヘッダを信頼し、適切に検証または
エスケープできない場合、攻撃者はこの入力を使用して、
サーバ側の動作を操作する有害なペイロードを挿入できる可能性があり。
ペイロードをホスト ヘッダに直接挿入する攻撃は、多くの場合、
「ホスト ヘッダ インジェクション」攻撃として知られていて。
これを使用してアカウントを乗っ取る方法:
パスワード リセット機能を実装する一般的な方法は、
シークレット トークンを生成し、このトークンを含むリンクを含む
電子メールを送信することで。
攻撃者が、攻撃者が制御するホスト ヘッダを使用してパスワードのリセットを
要求した場合、何が起こる可能性があるか。
リセット リンクを作成するときに Web アプリケーションが
ホスト ヘッダの値を利用する場合、攻撃者は、被害者に送信される
パスワード リセット リンクを汚染する可能性があり。
被害者が電子メール内の有害なリセット リンクをクリックすると、
攻撃者はパスワード リセット トークンを取得し、
被害者のパスワードをリセットできます。
そこで、 1 つのプライベート サイトをテストしていて。
そのドメインを次のように呼び出ぶことに。
<redacted>.com
この種の脆弱性はめったに見つからないため、
ホスト ヘッダ インジェクションのテストを行っておらず。
そのため、テストを中止しましたが、友人の 1 人がこの脆弱性を使用して
再び稼いだというツイートを見た後、この脆弱性を探し始め、
チェックリストに追加して。
この脆弱性を再現する手順は非常に簡単で。
最初にサインアップしてアカウントを確認し。
次に、パスワード リセット ページにアクセスして、
次のヘッダを 1 つずつ追加して。
X-Forwarded-For: attacker.com
X-Forwarded-Host: attacker.com
X-Forwarded-Proto headers: attacker.com
Host: attacker.com (duplicate this header)
X-Host: attacker.com
X-Forwarded-Server: attacker.com
X-HTTP-Host-Override: attacker.com
Forwarded: attacker.com
運が良ければ、パスワード リセット トークンに管理ドメインが記載され。
X-Forwarded-Host ヘッダを追加したところ、パスワード リセット リンクで
管理ドメインが言及されているこのPoCイメージが表示され。
被害者がこのリンクにアクセスすると、パスワード リセット トークンを受け取り、
被害者のパスワードをリセットでき。
ngrok も悪用されて。
POCビデオからのスクリーンショット
Best regards, (^^ゞ