Hello there, ('ω')ノ
パスワードリセットによるアカウント乗っ取りを。
脆弱性:
アカウントの乗っ取り
パスワードのリセットの欠陥
ロジックの欠陥
記事:
https://infosecwriteups.com/account-takeover-user-admin-via-password-reset-322b8020ea6
自分のアカウントのパスワードリセットを行っていたところ。
メールに送信されたパスワードリセットリンクに。
5桁の数字のトークンが含まれていることがわかって。
その後、2人の異なるユーザ(アカウントAとB)のパスワードリセットを。
連続して実行しているときに、サーバは両方のユーザに。
連続した番号でトークンを割り当てるという結論に達して。
そのため、アカウントAが攻撃者のアカウントである場合は。
攻撃者はトークンIDを次の連続した番号に変更して。
アカウントB、つまり被害者のアカウントのパスワードを変更できるので。
これはアカウントの乗っ取りにつながって。
例:
アカウントAがリンクを受け取った場合は。
https://dashboard.example.com/password-reset/form?token=28604
アカウントBは次を受け取ると。
https://dashboard.example.com/password-reset/form?token=28605
調査の結果、管理者ユーザ用の個別のログインページがないことがわかって。
これは、管理者ユーザが同じログインページに。
事前設定されている可能性があることを意味して。
なので、管理者ユーザのメールアドレスを調べて。
アカウントを引き継ぐことができるようにすることに。
ウェブサイトの「about-us」ページにアクセスすると。
創設者のメールアドレスを見つけることができたので。
管理者アカウントを乗っ取りをしてみることに。
再現する手順:
1.2つの異なるタブで下記のURLを開いて。
https://dashboard.example.com/login
下記の電子メールアドレスを使用して。
両方のアカウントのパスワードリセットを連続して実行して。
A:自分のアカウント
B:管理者アカウント
2.メモ帳を開き、アカウントAのパスワードリセットリンクをコピーして。
https://dashboard.example.com/password-reset/form?token=12345
3.トークンIDを下記の連続番号に変更して。
連続して割り当てられるトークンIDとして。
自分のトークンIDが12345の場合は、管理者トークンIDは12346になって。
4.下記の変更したリンクを使用して、管理者パスワードをリセットすることに。
https://dashboard.example.com/password-reset/form?token=12346
5.管理者アカウントの乗っ取りに成功して。
影響:
誰のアカウント乗っ取り
Best regards, (^^ゞ