Account takeover vulnerability that resulted in $2500 bounty! から学ぶ

ソース:

medium.com

脆弱性:ATO

 

訳:

 

私は音楽ストリーミングベースの Web サイトのセキュリティ調査を行っていました。 問題は解決されましたが、プライバシー上の理由から名前は公開しません
パスワードを忘れた場合の機能を調べていて、パスワード リセット リクエストにカスタム ホスト ヘッダーを挿入して機能するかどうかを確認しようとしましたが、機能しませんでした。
私はまだ、パスワード リセットの処理方法など、パスワード リセット機能をいじろうとしていましたが、それでもこの Web サイトはすべて正しい方法で実行しているようです。
計画を変更し、バグを見つけるために別の場所を探す必要があったのですが、そう思いながらパスワード リセット リクエストの応答を開いてしまいました。
そこで私が見たものは次のとおりです。 

 

 

応答には validationSession というオブジェクトがあり、私にとっては非常に興味深いものでした。
最初は何も気づきませんでしたが、メールで受け取ったパスワード リセットのリンクを見たとき、何かが頭の中でピンと来始めました。 

 

 

この依頼を受けてメールが来て、気づきました。
パスワード リセットの応答には、 sessionId パスワードをリセットするために必要なコードである が含まれていました。
これで、他の人の電子メール アドレスを送信し、リセット リクエストの応答を確認し、 sessionId を取得し そのユーザーのパスワードをリセットして、何の問題もなくこの Web サイトにログインすることができました。

 

これは本当に見つけやすいバグで、先ほども言ったように、このパスワード リセット機能に何か問題があることに気づくのに 10 分しかかかりませんでした。
繰り返しますが、以前の記事で述べたように、「すべてが安全で安全」に見える Web サイトでも、非常に基本的な部分で失敗する可能性があります。
したがって、Web サイトがどれほど人気が​​あるとしても、常に小さな点に注意を払う必要があります。
私の中にはいつも「彼らはそこまで愚かではない、きっとそんなことを考えていたのだろう」という思いがあります。
結局のところ、人間は間違いを犯す可能性があり、間違いを犯すでしょう。 それが私が2500ドル裕福である理由ですB)。 

 

ほなほな。