Shikata Ga Nai

Private? There is no such things.

Web cache poisoning via an unkeyed query stringをやってみた

 Hello there, ('ω')ノ

 

キーなしクエリ文字列によるWebキャッシュポイズニングを。

 

このラボは Webキャッシュポイズニングに対して脆弱で。

クエリ文字列にキーが設定されていないとか。

ユーザは、このサイトのホームページに定期的にアクセスして。

 

ラボを解決するには、被害者のブラウザでalert(1)を実行する応答で。

ホームページをポイズニングするとのことで。

 

まずは、ページにアクセスして。

 

f:id:ThisIsOne:20210416073816p:plain

 

リクエストをリピータへ。

 

f:id:ThisIsOne:20210416073853p:plain

 

適当にクエリパラメータを挿入してSendすると。

クエリパラメータが変更されているものの。

リクエストは下記のとおりで、キャッシュキーにふくまれていなくて。

 X-Cache: hit

 

f:id:ThisIsOne:20210416074015p:plain

 

ここで、Originヘッダをキャッシュバスターとして追加してSendすると。

レスポンスが返ってこなくて。

とりあえず、Canselして削除して。

 

f:id:ThisIsOne:20210417102559p:plain

 

次にパラメータをXSSペイロードに変更してSendし続けると。

 GET /?evil='/><script>alert(1)</script>

 

下記のレスポンスが返ってきてペイロードリクエストの反映されて。

 X-Cache: hit

 

これがキャッシュとして残っているので。

ホームページをロードすると。

つまり、他のユーザがアクセスすると被害にあうわけで。

 

f:id:ThisIsOne:20210416074122p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210416074146p:plain

  

 Best regards, (^^ゞ