| name | xxe-testing |
| description | XML external entity injection for file read, SSRF, and DoS |
| origin | RedteamOpencode |
XXE Testing (XML External Entity Injection)
When to Activate
- Application accepts XML input (SOAP, REST with XML, file upload)
- Content-Type
application/xml or text/xml accepted
- File formats that use XML internally (DOCX, XLSX, SVG, XHTML)
Tools
run_tool curl (send crafted XML)
- Burp Suite Repeater
- XXEinjector
- Out-of-band server (Burp Collaborator, interactsh)
Methodology
1. Identify XML Input Points
2. Classic XXE — File Read
3. SSRF via XXE
4. Blind XXE — Out-of-Band
5. Denial of Service
6. Bypass Techniques
7. SVG / Office File XXE
8. CTF / Juice Shop Recall Contract
When Juice Shop exposes XML-capable routes or file upload/download flows, do one bounded
XXE recall pass before closing the case:
- Try a safe
Content-Type: application/xml switch on API endpoints already accepting JSON
only after confirming it stays within the normal 1-2 representative probe budget.
- For upload surfaces, include one SVG/XML payload carrying a benign external entity marker
and then visit the consumer route that parses/renders the uploaded file.
- Preserve explicit solved-state or negative evidence for
XXE Data Access; if parser
behavior is unclear, return REQUEUE with the exact XML-capable endpoint/file consumer
rather than marking the family exhausted.
What to Record
- Endpoint and input vector (body, file upload, header)
- Payload used and data exfiltrated
- Blind vs reflected
- Out-of-band callback evidence
- Internal resources accessed (files, metadata, services)
- Severity: Critical (file read/SSRF) or High (blind confirmed)
- Remediation: disable DTD processing, disable external entities, use JSON