Hello there, ('ω')ノ
どのようにしてユーザのクレジットクーポンを盗み出すことができたのかを。
脆弱性:
IDOR
記事:
今回は、単純な改ざんがどのようにクレジットを盗むIDORにつながったかを。
説明することに。
まず、ターゲットサブドメインは下記のとおりで。
a.redacted.com
b.redacted.com
a.redacted.comで、認証されたユーザがビジネスストアの割引クーポンを。
作成しているときに抜け穴を探したものの見つからなかったので。
次のスコープ内のサブドメインであるb.redacted.comに移動することに。
まずは、ユーザ認証なしで基本的なウェブサイトのクロールを行って。
次に、有効なユーザ資格情報を使用してアプリケーションにログインして。
ターゲットをクロールしているときに、興味深いAPIの呼び出しを見つけることに。
OPTIONS /api/v1/client_info?email=user@web.com&external_id=00000111&customer_token=7ddf32e17a6ac5ce04a8ecbf782ca509&merch_id=60037
ユーザの電子メールIDは、OPTIONSメソッドを介して送信されたために。
単純な204応答が返されて。
基本的に、着信要求が安全かどうかを確認するためにトリガーされて。
次にOPTIONSメソッドを改ざんするために、GETに変更したところ。
user@web.comが、a.redacted.comで作成したすべてのユーザを含む。
クレジットクーポン、クレジット履歴、期限切れのクーポンなどが応答が返されて。
これで、電子メールIDを操作するだけで。
a.redacted.comから他のユーザのデータをフェッチできるか確認できて。
ただ、これには攻撃者が、被害者の電子メールとexternal_idを。
知っている必要があるわけで。
external_id値は増分値で、一意のユーザごとに一意であることがわかって。
さらに同じAPI呼び出しでレート制限が欠落していることがわかって。
他には、パスワードのリセット要求が開始されると。
同じexternal_idが共有されていたので。
被害者のテストアカウントを作成して。
被害者のemailとexternal_idは、パスワードリセット機能を介して。
簡単に列挙/公開されるので取得できるので。
GETメソッドへの改ざんされたOPTIONSで同じ脆弱なリクエストを使用して。
被害者がa.redacted.comで作成したクーポン、有効なクレジットクーポンだけでなく。
期限切れのクーポン、現在の残高、その他の取引の詳細も取得できて。
Best regards, (^^ゞ