Skip to content

Commit 0c5b7c3

Browse files
authored
Merge pull request swisskyrepo#774 from 1PingSun/master
2025-04-04 Add Detecting Web Cache Deception Content
2 parents ad79082 + 5bc06fe commit 0c5b7c3

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

Web Cache Deception/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,19 @@ The following URL format are a good starting point to check for "cache" feature.
9090
* `https://example.com/app/conversation/;.js`
9191
* `https://example.com/home.php/non-existent.css`
9292

93+
## Detecting Web Cache Deception
94+
95+
1. Detecting delimiter discrepancies: `/path/<dynamic-resource>;<static-resource>`
96+
* For example: `/settings/profile;script.js`
97+
* If the origin server uses `;` as a delimiter but the cache isn't
98+
* The cache interprets the path as: `/settings/profile;script.js`
99+
* The origin server interprets the path as: `/settings/profile`
100+
* For more delimiter characters: see [Web cache deception lab delimiter list](https://portswigger.net/web-security/web-cache-deception/wcd-lab-delimiter-list)
101+
2. Detecting normalization: `/wcd/..%2fprofile`
102+
* If the origin server resolved the path traversal sequence but the cache isn't
103+
* The cache interprets the path as: `/wcd/..%2fprofile`
104+
* The origin server interprets the path as: `/profile`
105+
93106
## CloudFlare Caching
94107

95108
CloudFlare caches the resource when the `Cache-Control` header is set to `public` and `max-age` is greater than 0.

0 commit comments

Comments
 (0)