You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+59-22Lines changed: 59 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,33 +4,70 @@ This is a Burp Suite extension to test web applications for various Web Cache De
4
4
5
5
## The scanner performs the following checks:
6
6
7
-
1.**Initial Path Mapping Check:**
8
-
* Verifies that the target endpoint responds differently to authenticated vs. unauthenticated requests (basic session check).
9
-
* Checks if appending a random path segment (e.g., `/originalpath/randomXYZ`) returns content similar to the original path (`/originalpath`). This confirms a prerequisite where the backend might ignore trailing path segments.
10
-
11
-
2.**Delimiter + Extension Cache Test:**
12
-
* If the initial path mapping check passes, this test iterates through common delimiters (`/`, `;`, `?`) and a wide list of file extensions (e.g., `.js`, `.css`, `.jpg`, `.woff2`, `.pdf`).
13
-
* For each combination (e.g., `/originalpath/randomXYZ.js`, `/originalpath;randomXYZ.css`), it checks if requesting the URL *without* authentication returns content similar to requesting it *with* authentication.
14
-
* Similarity indicates that the authenticated response was likely cached based on the extension and served to the unauthenticated request.
15
-
16
-
3.**Path Normalization Cache Test:**
17
-
* This test checks if the cache normalizes paths differently from the backend server, using common cacheable file/path targets (e.g., `/robots.txt`, `/index.html`, `/assets/`).
18
-
* It iterates through common delimiters (`/`, `;`, `?`) and several path traversal/normalization templates (e.g., `%2f%2e%2e%2f` which is `/../`).
19
-
* It crafts URLs combining the original path, a delimiter, a normalization template, and a known cacheable target (e.g., `/originalpath;%2f%2e%2e%2frobots.txt`).
20
-
* Similar to the previous test, it compares the response body received by an authenticated vs. unauthenticated request for this crafted URL.
21
-
* Similarity suggests the cache might have normalized the path (e.g., to `/robots.txt`) and cached the sensitive content from `/originalpath` under that key.
7
+
| Check | Description |
8
+
|-------|-------------|
9
+
|**Initial Path Mapping Check**| Verifies that the target endpoint responds differently to authenticated vs. unauthenticated requests, and checks if appending a random path segment (e.g., `/originalpath/randomXYZ`) returns content similar to the original path (`/originalpath`), confirming a prerequisite where the backend might ignore trailing path segments. |
10
+
|**Delimiter + Extension Cache Test**| If the initial check passes, iterates through common delimiters (`/`, `;`, `?`) and file extensions (e.g., `.js`, `.css`, `.jpg`, `.woff2`, `.pdf`). For each combination (e.g., `/originalpath/randomXYZ.js`), checks if requesting the URL without authentication returns content similar to the authenticated request, indicating the authenticated response was cached based on the extension. |
11
+
|**Path Normalization Cache Test**| Checks if the cache normalizes paths differently from the backend server using cacheable targets (e.g., `/robots.txt`, `/index.html`, `/assets/`). Iterates through delimiters and path traversal templates (e.g., `%2f%2e%2e%2f`), crafting URLs like `/originalpath;%2f%2e%2e%2frobots.txt` and comparing authenticated vs. unauthenticated responses to detect cache normalization vulnerabilities. |
3. The built JAR file will be located at `build/libs/web-cache-deception-scanner-all.jar`
47
+
48
+
4. Install in Burp Suite:
49
+
- Open Burp Suite and go to the **Extender** tab
50
+
- Click **Add** and select the JAR file from `build/libs/`
51
+
- Verify installation in the **Output** tab
26
52
27
53
## Credits
28
54
29
-
-**Original Extension Author:**
30
-
[Johan Snyman](mailto:jsnyman@trustwave.com)
55
+
Original extension by [Johan Snyman](mailto:jsnyman@trustwave.com). Vulnerability research by [Omer Gil](https://twitter.com/omer_gil). Community Edition updates by [atomiczsec](https://atomiczsec.net).
0 commit comments