ソース:
脆弱性:IDOR
訳:
2023 年 7 月に、私は大規模なアセットを対象とする重大なバグ報奨金プログラムの招待状を受け取り。
私のアプローチは、そのような広範なプログラムをテストするときに通常行うことを反映していて。
特定の Google Dork を使用して古いエンドポイントを検索し。
さまざまな愚か者を調べて実験した結果、ユーザーの注文を保存する専用のサブドメインを発見し。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002233893
アクセスしてみましたが、当然ながら禁断のエラーが出てしまい。
さらにエンドポイントがあるかどうかを確認したかったので、それを後で保存し、ウェイバック マシンを使用し。
ウェイバックマシンを使用する。
この新しい興味深いエンドポイントを見つけ。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/MailOid?orderId=003163553&mailId=a1c156c4–6c4a-4bf9–9a17–2c5bvcdf6ec1
これをリクエストして「200 OK」という応答を受け取りましたが、空白のページが返されて。
応答を調べたところ、リクエストを送信するたびにサーバーが Cookie を設定していることがわかり。
これらの Cookie に詳しい場合は、これらが実際には認証 Cookie であることがわかり。
そこで、これらの Cookie を使用して注文 003163553 を確認して。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=003163553
そしてそれはうまくいきました!
私はそのオーダーにアクセスできるようになり。
私は、mailId が注文にアクセスするためのセキュリティキーとして機能するのではないかと推測し。
この理論をテストするために、以前の Google の探索中に見つけた別の orderId (order 002233893、覚えていますか?) を使用して同じエクスプロイトを試み、同様にアクセスすることに成功し。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002233893
mailId は明らかにセキュリティ キーとして機能しようとしていますが、すべての注文のセキュリティ キーとして機能し、有効でリクエスト時に存在する限り、どの注文へのアクセスも許可し。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/MailOid?orderId=<anyorder>&mailId=a1c156c4–6c4a-4bf9–9a17–2c5bvcdf6ec1
要約すると、たとえば、orderId 002143893 にアクセスしたい場合、最初のステップは、その特定の注文の Cookie を取得するために次のリクエストを行うことになり。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/MailOid?orderId=002143893&mailId=a1c156c4–6c4a-4bf9–9a17–2c5bvcdf6ec1
空の応答が返されますが、サーバーはその特定の注文の Cookie を提供し。
Cookie を取得したので、注文 002143893にアクセスできるようになり。
https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002143893
この脆弱性により、攻撃者は支払い方法、契約書 PDF、請求先および配送先住所、電子メール アドレス、電話番号、姓名などの機密情報を含む任意の人の注文にアクセスでき、300 万人分の情報が漏洩する可能性があり。
ご覧のとおり、Google Dorking と Wayback Machine がこの問題を発見する鍵となり。
ほなほな。