Agent skill · security · yaklang

xxe-xml-external-entity

XXE playbook. Use when XML, SVG, OOXML, SOAP, or parser-driven imports may resolve external entities, files, or internal network resources.

Why this skill is useful

Adds detailed attack scenarios and payloads for exploiting XXE vulnerabilities that are not commonly known or documented.

What it needs

About 8k tokens when loaded. Last updated 2026-06-16. 1,563 stars on the source repository.

What this skill does

SKILL: XML External Entity Injection (XXE) — Expert Attack Playbook AI LOAD INSTRUCTION: Expert XXE techniques. Covers all injection contexts (SOAP, REST JSON→XML parsers, Office files, SVG), OOB exfiltration (critical when direct read fails), blind XXE detection, and XXE-to-SSRF chain. Base models often miss OOB and non-XML context XXE. For real-world CVE chains, Office docx XXE step-by-step, PHP expect:// RCE, and Solr XXE+RCE, load the companion SCENARIOS.md. 0. RELATED ROUTING Also load: upload insecure files when XXE is reachable through SVG, OOXML, import, or preview pipelines Extended Scenarios Also load SCENARIOS.md when you need: Apache Solr XXE + RCE chain (CVE-2017-12629) — XXE to read config, then VelocityResponseWriter for RCE Office docx XXE step-by-step — unzip → inject DOCTYPE into word/document.xml or [ContentTypes].xml → repackage → upload DOCTYPE-based blind SSRF — PUBLIC external DTD reference triggers HTTP callback without entity reflection PHP expect:// protocol via XXE — direct command execution when expect extension is installed Blind XXE via error messages — force file path error that leaks content in exception text XXE in SOAP web services — inject entities into SOAP Envelope/Body elements --- 1. CLASSIC XXE PAYLOAD If /etc/passwd reflects in response → confirmed file read. --- 2. ATTACK SURFACE DISCOVERY Direct XML Inputs SOAP endpoints (text/xml, application/soap+xml) REST APIs accepting application/xml File upload: .xlsx, .docx, .pptx (Office Open XML) SVG uploads (SVG is XML) RSS/Atom feed parsers Web services with XML config import Non-Obvious XML Processing Change Content-Type header on any JSON POST to: Then rewrite body as XML — many backends use dual-format parsers or auto-detect. PDF Generators Some HTML→PDF tools (wkhtmltopdf, PrinceXML) execute SSRF via embedded URLs but also parse external entities in SVG/XML included in the HTML. --- 3. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills yaklang/xxe-xml-external-entity

View the source on GitHub

Browse the @skills marketplace