shikata ga nai

Private? There is no such things.

Exploiting CORS to perform an IDOR Attack leading to PII Information Disclosureを訳してみた

Hello there, ('ω')ノ

 

CORSを悪用してIDOR攻撃を実行し、PII情報の開示につながるを。

 

脆弱性:

 CORSの設定ミス

 情報開示

 

記事:

https://notmarshmllow.medium.com/exploiting-cors-to-perform-an-idor-attack-leading-to-pii-information-disclosure-95ef21ecf8ee

 

ツール:

 Burp Suite

 

アプリケーションは、Eコマースプラットフォームで。

アプリケーションのビジネスロジックの脆弱性を探して。

最初の数時間は、アプリケーションのワークフローを理解しながら。

データを操作して、リピータにリクエストを送信して。

XSSなどの他の脆弱性を探していたものの、アプリケーションはかなり安全で。

 

次に、チェックアウト機能のテストを開始することに。

チェックアウト時に、アプリケーションは期待どおりに。

ユーザの配送先住所とクレジットカードの詳細を要求していて。

チェックアウトページのURLを確認すると下記のとおりで。

 https://redcorp.com/20183638/checkout/700dd776teu8890abcdpo12ha0

 

このハッシュを他のユーザのハッシュと交換すると。

チェックアウトページのカート内のアイテムが変更されるので。

これは承認の欠如を示していたものの。

アプリケーションはアカウントを交換したり。

カート内のアイテムを変更したりしていなくて。

しかも、チェックアウト時のみで。十分な影響を与えず。

他のユーザのカートのアイテムを読み込むために使用されていて。

 

その後、Burp Suiteの履歴を調べていたところ。

上記と同じハッシュを含む別のエンドポイントがみつかって。

 /wallets/checkouts/700dd776teu8890abcdpo12ha0.json

 

このハッシュは、ユーザのアカウントのデータを保存するために使用されていて。

エンドポイント「/wallets/checkouts/」は、ユーザがデータへのアクセスを。

許可されているかどうかを確認しておらず。

攻撃者のハッシュを被害者のハッシュと交換すると。

応答で被害者のアカウントのデータが読み込まれて。

 

さて、「/wallet/checkout/random_hash.json」エンドポイントで。

他のユーザのハッシュを置き換えることで。

他のユーザのすべての詳細を盗むことができるものの。

ランダムハッシュは推測が難しく、ブルートフォース攻撃は時間の無駄で。

他のユーザのハッシュを盗むことができれば。

そのユーザの名前、自宅の住所、クレジットカードの詳細などを表示できて。

 

f:id:ThisIsOne:20210925074751p:plain

 

そこで、検索機能を使用してBurp Suiteでハッシュを検索して。

どこかにリークしていないかどうかを確認すると。

トランザクションのターゲットアプリケーションに統合されて。

クレジットカード番号を検証するサードパーティアプリケーションが。

このハッシュにアクセスできて。

CORSは、リクエストからデータにアクセスすることを許可していて。

アプリケーションは、データを検証するために。

サードパーティのアプリケーションとデータを共有する必要があって。

 

さらに、これはデータへのアクセスにも役立って。

CORSは、任意のドメインがリクエストからデータを。

フェッチできるように構成されているので。

これらのデータをフェッチすることもできて。

 

攻撃者は最初にCORSを悪用してユーザのランダムハッシュを取得して。

ハッシュを置き換えて被害者のデータにアクセスして。

これには、名前、住所、クレジットカード情報、支払い情報、および。

ユーザのアカウントに関連するすべてのものが含まれていて。

CORSはブロックできないので。

エンドポイントへの不正アクセスを検証してブロックすることで修正できて。

 

Best regards, (^^ゞ

ひとりひとりの自覚をもった行動で、医療従事者と保健所職員を助けよう。

f:id:ThisIsOne:20200404115457p:plain