Cache Deception + CSPT Turning Non Impactful Findings into A... #1404
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Overview
The post demonstrates a practical chain that turns two low-impact issues — Client-Side Path Traversal (CSPT) and Web Cache Deception — into full Account Takeover (ATO). The crux: use CSPT in the Single-Page App (SPA) to force an authenticated fetch (bearing a custom header) to a cacheable API path variant, causing the CDN to publicly cache sensitive token JSON. Anyone can then retrieve the victim’s token from the cache.
How the pieces work
🔧 Technical Details
CSPT to retarget authenticated fetches: When a front end concatenates user input into API paths and attaches auth headers, inject path traversal (e.g.,
../../../target
) so the browser normalizes the URL to an attacker-chosen endpoint on the same origin. The fetch will carry the victim’s credentials/headers.Web Cache Deception via static extension: Append a static-looking suffix (e.g.,
.css
) to a dynamic, sensitive endpoint. Some CDNs apply extension-based caching, returning identical JSON withCache-Control: public, max-age=...
and serving it without varying on auth headers. If the first response was made with victim credentials, subsequent unauthenticated requests retrieve the cached secret.Chain for ATO: Use CSPT to send an authenticated request to the cacheable path variant and poison the CDN with the victim’s sensitive JSON. Then read back the same URL without authentication t...
🤖 Agent Actions
I analyzed the repository and found the best place to integrate the blog’s technique is in the “Pentesting Web > Cache Deception/Cache Poisoning” section, with an additional cross-reference in the “Client Side Path Traversal” page.
What I updated:
Why these changes:
References added (in the files):
No new files were created; I updated existing pages in the most relevant sections to keep related content consolidated.
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.
📚 Repository Maintenance
All .md files have been checked for proper formatting (headers, includes, etc.).
🗑️ File Cleanup