Simulations/Web Cache Deception

Web Cache Deception

Advanced

A CDN caches any URL whose path ends in a static extension, no matter what Cache-Control says. The origin app routes by prefix and ignores the trailing extension, so /account/profile.css quietly returns the victim's private page — and the CDN stores it under a public-looking key anyone can request.

Progress:
1
Cache a Private Page
2
Read the Victim's Data
3
Stop the Deception
⚡ Crafted path
https://app.example.com
🛡 Cache Protection
Cache / request log
Waiting for a request…

Challenges

1
Cache a Private Page
Get the victim to open /account/profile.css so the CDN caches their private profile under a static-looking key.
hints
2
Read the Victim's Data
As the attacker, fetch the same crafted URL with no authentication and read the victim's cached private data.
hints
3
Stop the Deception
Enable a protection, have the victim open the crafted URL again, and confirm the private page is refused caching.
hints
How to fix Web Cache Deception
content-type validation, no-store on dynamic routes, strict origin routing

Frequently Asked Questions