Shikata Ga Nai

Private? There is no such things.

Web Cache

LAB: パス区切り文字を悪用したWebキャッシュ・ディセプションの実践解説

Hello there, ('ω')ノ ✅ このラボで学べること このラボでは、Webキャッシュ・ディセプション(Web Cache Deception)攻撃の一種である「パス区切り文字の解釈の違い」を悪用した手法を学びます。具体的には、キャッシュサーバーとオリジンサーバーがURLのパ…

区切り文字のズレを利用したWeb Cache Deception攻撃の構築(実例と注意点)

Hello there, ('ω')ノ ✅ 攻撃の基本構造 次のようなURLを使って、キャッシュとオリジンサーバーの解釈の違いを狙います: /settings/users/list;aaa.js 解釈のズレ システム 解釈 キャッシュ /settings/users/list;aaa.js → .jsで終わる静的ファイルと判断…

区切り文字のズレを悪用してWeb Cache Deceptionを成立させる方法(応用編)

Hello there, ('ω')ノ ✅ 目的 ここでは、前ステップで特定したオリジンサーバーが使う区切り文字(delimiter)を利用しつつ、キャッシュがそれを無視するケースを狙って機密情報をキャッシュさせる方法を詳しく解説します。 攻撃の条件 次の2つが同時に成立…

区切り文字のズレを悪用したWeb Cache Deception攻撃の実践手法

Hello there, ('ω')ノ ✅ 攻撃の目的 この攻撃では、キャッシュとオリジンサーバーの「区切り文字の解釈の違い」を利用して: 「キャッシュには静的ファイルに見えるURLを保存させ、 オリジンサーバーには動的レスポンスを返させる」 というギャップを作り出…

区切り文字のズレ(エンコード文字 `%00` の利用)によるWeb Cache Deceptionの危険性

Hello there, ('ω')ノ ✅ %00(ヌル文字)とは? %00 は URL エンコードされた「ヌル文字(NULL byte)」です。 通常の文字列処理において %00 は文字列の終了を意味する特別な文字です。 一部のサーバーやフレームワークでは %00 によってパスを「途中で打ち…

区切り文字の解釈のズレ(Ruby on Rails編)とWeb Cache Deceptionの脆弱性

Hello there, ('ω')ノ ✅ フレームワークごとの区切り文字の違いに注目 URL中の区切り文字(デリミタ)の解釈は、フレームワークごとに異なる場合があります。 これにより、キャッシュとアプリケーションの間でURLの意味が分裂することがWeb Cache Deception…

区切り文字(デリミタ)の解釈の違いとWeb Cache Deception脆弱性

Hello there, ('ω')ノ ✅ デリミタ(区切り文字)とは? デリミタとは、URL中で構造を区切るために使われる記号や文字列のことです。 一般的な例: ?:パスとクエリパラメータを分ける #:フラグメント識別子 ;:あまり一般的ではないが、Java系で使われる場…

LAB: パスマッピングの違いを悪用したWebキャッシュデセプション攻撃

Hello there, ('ω')ノ このラボの目的 このラボでは、Webキャッシュデセプション(Web Cache Deception, WCD)攻撃を利用して、他ユーザー(carlos)のAPIキーを取得する方法を学びます。WCD攻撃は、キャッシュサーバーとオリジンサーバーのURLパスマッピン…

パスマッピングのズレを悪用したWeb Cache Deception攻撃:拡張子の追加でキャッシュを騙す方法

Hello there, ('ω')ノ ✅ 攻撃の概要 パスマッピングのズレによるWeb Cache Deceptionは: サーバーは動的レスポンスを返すが、キャッシュは静的ファイルだと誤解して保存してしまう という挙動を利用して、機密情報を不正にキャッシュ化させる手法です。 テ…

パスマッピングのズレによるWeb Cache Deceptionの実例:`.css`付きURLで機密情報がキャッシュされる

Hello there, ('ω')ノ ✅ 問題の構造 Web Cache Deceptionの脆弱性は、キャッシュとオリジンサーバーでURLの解釈が異なることによって生まれます。 具体例 http://example.com/user/123/profile/wcd.css オリジンサーバー(RESTスタイルの解釈) /user/123/…

パスマッピングのズレとWeb Cache Deceptionへの悪用:RESTと伝統的URL構造の違いを突く

Hello there, ('ω')ノ ✅ パスマッピングとは? URLパスのマッピングとは: サーバーが受け取ったURLを、実際に処理すべきリソース(ファイル、スクリプト、APIロジックなど)に変換する仕組み です。 主なマッピングスタイル ① 伝統的なファイルシステム型…

静的ファイル拡張子のキャッシュルールを悪用するWeb Cache Deception攻撃

Hello there, ('ω')ノ ✅ この攻撃の概要 多くのCDNやキャッシュサーバーは、以下のような静的ファイル拡張子(例:.css, .js, .png)を含むリクエストをキャッシュ対象と判断します: /account.css, /user.js, /profile.png しかし、アプリケーション側(オ…

Webキャッシュの有無を見抜く:キャッシュされたレスポンスの検出方法

Hello there, ('ω')ノ ✅ なぜキャッシュレスポンスの検出が重要か? Web Cache Deception や Web Cache Poisoning の脆弱性を調査・悪用する上で: 「このレスポンスはキャッシュされたものか?それともオリジンサーバーの応答か?」 を正確に判断できること…

Web Cache DeceptionのテストにおけるCache Busterの活用法

Hello there, ('ω')ノ ✅ なぜCache Busterが必要なのか? Web Cache DeceptionやCache Poisoningをテストするとき: キャッシュに保存された既存のレスポンスが影響して、テスト結果が正確でなくなるリスクがあります。 ❌ 問題の例 あなたがURL /account.css…

Web Cache Deception攻撃の構築手順:基本戦略とキーポイント解説

Hello there, ('ω')ノ Web Cache Deceptionとは? Web Cache Deception(WCD)攻撃は: 「本来キャッシュされるべきでない機密ページを、静的ページに見せかけてCDNやキャッシュサーバーに保存させ、他ユーザーに見せてしまう攻撃」 です。 ✅ 攻撃の基本ス…

WebキャッシュのルールとWeb Cache Deceptionを引き起こす条件

Hello there, ('ω')ノ ✅ キャッシュルールとは? キャッシュルールは、Webキャッシュが「どのレスポンスをキャッシュするか、そしてどれくらいの期間保存するか」を決める基準です。 キャッシュルールの目的 対象 理由 静的リソース(画像、CSS、JSなど) …

Cache Keyの仕組みとWebキャッシュセキュリティへの影響

Hello there, ('ω')ノ ✅ Cache Key(キャッシュキー)とは? Webキャッシュがリクエストを受け取った際に: 「このリクエストは、すでにキャッシュ済みのレスポンスを使えるか?」 を判断するために生成する識別用の値が「キャッシュキー(cache key)」です…

Webキャッシュとその脆弱性:Web Cache Deceptionの基礎を理解する

Hello there, ('ω')ノ ✅ Webキャッシュとは? Webキャッシュとは、ユーザーのリクエストとサーバーの間に介在し、静的リソースのやり取りを効率化する仕組みです。 キャッシュの動作フロー ユーザーが静的リソースをリクエスト(例:画像やCSS、JavaScript…