Shikata Ga Nai

Private? There is no such things.

Finding my First Critical Web Cache Poisoningを訳してみた

Hello there, ('ω')ノ

 

重大なWebキャッシュポイズニングを見つけるを。

 

脆弱性:

 Webキャッシュポイズニング

 

記事:

 https://infosecwriteups.com/finding-my-first-critical-web-cache-poisoning-6f956799371c

 

ターゲットをredacted.comと呼ぶことに。

まず、Webキャッシュポイズニングは。

攻撃者がWebサーバとキャッシュのアクションを利用して。

悪意のあるHTTP応答を他のユーザに提供する高度な手法で。

下記がWebキャッシュデモで。

 

f:id:ThisIsOne:20210807131749p:plain

 

Webキャッシュポイズニングには、2つのステップがあって。

まず、攻撃者は、バックエンドサーバから。

潜在的に危険なペイロード応答を取得する方法を理解する必要があって。

それらの応答をキャッシュし、それらが成功した後に。

意図された犠牲者にそれを提供しなければならなくて。

感染したWebキャッシュには。

XSS、DOS、JavaScriptインジェクション、オープンリダイレクトなどを含む。

一連の攻撃を広める破壊的な手段となる可能性があって。

 

Webキャッシュポイズニングの検証:

HTTPヘッダ領域に多くのヘッダを詰め込むことを。

可能にする弱いサービスコードを見つけて。

キャッシュサーバは、サーバにキャッシュさせたい実際のキャッシュ情報を。

強制的にフラッシュして。

特別に構築されたリクエストをサーバに送信するとサーバにキャッシュされて。

次のリクエストが送信されると。

このリクエストへの応答は、キャッシュに保存されている以前に。

挿入されたコンテンツになって。

 

キャッシュに使用できるヘッダ

 X-Forwarded-Host: your-hackers-site.com

 X-Host: your-hackers-site.com

 Forwarded-Server: your-hackers-site.com

 

まずは、ParamMinerで非表示のリンクされていないパラメータを識別して。

これは、Webキャッシュポイズニングの脆弱性を見つけるのに特に役立って。

これを使用するには、Burpでリクエストを右クリックして。

Burp Suite Proを使用している場合は。

特定されたパラメータはスキャナの問題として報告されて。

そうでない場合は、右クリックで下記の手順で。

脆弱性の有無を確認するために使用することに。

 

f:id:ThisIsOne:20210807142301p:plain

 

ParamMinerによって生成された問題は、下記のとおりで。

秘密のキャッシュされていない入力を特定することができて。

f:id:ThisIsOne:20210807131838p:plain

 

これを使用して脆弱性が存在するかどうかを確認すると。

ポイズニングがプロファイルセクションで発生していることがわかって。

このセクションでは、サーバを使用して応答を取得することで。

要求を簡単にキャッシュできて。

ここでは、Burp Collaboratorを使用することに。

または、Project Discovery Teamのinteractshで取得することもできて。

ユーザがキャッシュされたセクションを参照して。

成功した場合、Session、Cookie、PIIなどの重要な情報を取得できて。

 

https://github.com/projectdiscovery/interactsh

f:id:ThisIsOne:20210807145619p:plain

 

影響:

特別に細工された応答が、複数のユーザが使用するWebキャッシュ。

または1人のユーザーブラウザキャッシュによってキャッシュされる場合。

応答の影響が大きくなる可能性があって。

プロキシサーバにあるような共有サイトキャッシュに回答が保存されていない限り。

そのキャッシュのすべてのユーザは。

キャッシュエントリが削除される直前に悪意のあるコンテンツを受け取って。

StoredXSSを超えてエスカレートすることは可能かと。

 

Best regards, (^^ゞ