Hello there, ('ω')ノ
eコマースサイトからの最初の報奨金を。
脆弱性:
IDOR
記事:
https://medium.com/@0xh7ml.py/my-first-10k-bdt-bounty-from-an-e-commerce-site-cec9d58e1f55
有名なeコマースサイトで魚料理を見つけて、魚料理を1パケット注文して。
そのアプリケーションは、注文を続行すると「注文」ページにリダイレクトされて。
アドレスバーに注目することに。
下記が、そのリンクで。
https://site.com/checkout/payment?orderId=xxxxxxx
Burp Suiteを起動し、インターセプトしてリクエストをリピータに送信して。
下記のようにパラメータ値を変更して。
https://site.com/checkout/payment?orderId=1111111
⇩
https://site.com/checkout/payment?orderId=1111112
すると、悲しいことに401 Unauthorizedが表示されたので。
さらに掘り下げることに。
まず、「注文をキャンセルする」オプションを思いついて。
このオプションを使用することで。
認証されたユーザは自分の注文をキャンセルできて。
よって、注文をキャンセルしてリクエストを傍受すると、URLは下記のとおりで。
https://site.com/api-v4/Order/CancelOrder?orderId=xxxxxxx
Burp Suiteのリピータタブに送信して注文IDの最後の値を変更すると。
リクエストの応答に200のステータスコードが含まれていたので。
これは、ユーザのアカウントにアクセスせずに。
他のユーザの注文を正常にキャンセルしたことを意味して。
しかしながら、この問題についてもっと確認する必要があって。
そこで、最後の桁を別のランダムな整数に変更してみると。
404が見つからず。
ただ、キャンセル後に注文がある場合は。
404エラーを返すべきなのに200が表示されるので。
200の応答を通じて、認証なしでユーザの注文をキャンセルすることが。
許可されていることを確認できて。
Best regards, (^^ゞ