以下の内容はhttps://cysec148.hatenablog.com/entry/2025/07/25/175724より取得しました。


第35回 キャッシュ関連の脆弱性(キャッシュポイズニング)入門

Hello there, ('ω')ノ

キャッシュとは?

  • Webサイトの表示を速くするため、一度表示したデータを一時保存しておく仕組み
  • ブラウザ側、サーバー側、CDN(Cloudflareなど)でキャッシュされることがあります

たとえば:

  • 社内ポータルのトップページ画像
  • 公開資料PDF

など、頻繁に同じデータを見る場所でよく使われます。


キャッシュポイズニングとは?

  • 攻撃者が細工したリクエストを送る
  • その内容がキャッシュとして保存される
  • 他の利用者がそのキャッシュを使ってしまう

たとえば:

  • 本来ログイン画面が表示されるべきURLで
  • 攻撃者のページが表示されてしまう

ということが理論上可能になります。


よくあるチェック対象

✅ ログイン不要なページ

✅ URLパラメーター付きのページ

✅ 公開資料やダウンロードページ


実際のチェック手順① キャッシュ対象を探す

  1. F12キー → Networkタブ
  2. 対象ページを開く
  3. Response Headers を確認:

  4. Cache-Control: public

  5. Cache-Control: max-age=...

このように「public」になっているものは要注意です。


実際のチェック手順② パラメーターを細工して試す

例:

https://intra.example.co.jp/info?page=1

ここに不要なパラメーターをつけて再アクセス:

https://intra.example.co.jp/info?page=1&test=evil

✅ 観察ポイント:

  • その後、元のURLを開いても細工した内容が表示されてしまわないか?
  • キャッシュが上書きされていないか?

実際のチェック手順③ HTTPヘッダーの確認と改ざん

キャッシュ制御用ヘッダーが適切か確認します:

  • Vary: Cookie
  • Cache-Control: private
  • Set-Cookie

これらが設定されていないとキャッシュポイズニングリスクが高まります。


チェックリストまとめ

  • [ ] Cache-Control ヘッダーが適切に設定されているか?
  • [ ] URLパラメーター付きでキャッシュが変わらないか確認したか?
  • [ ] キャッシュ対象になってはいけないページが含まれていないか?
  • [ ] 本番環境でテストする場合は必ず許可を取ったか?

注意事項

  • 本番環境でキャッシュ設定を変更する場合はシステム担当と必ず連携
  • CDNサービス利用時も別途確認が必要

まとめ

  • キャッシュポイズニングは「一度保存された悪意あるデータがみんなに配られる」状態
  • ヘッダー確認+URL細工で基本チェック可能
  • 非エンジニアでもF12のNetworkタブだけで十分確認できる

Best regards, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/07/25/175724より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14