XXE (XML External Entity)

Como Explorar

XXE permite que um atacante injete entidades externas em documentos XML processados pela aplicação, podendo acessar arquivos internos, realizar SSRF ou DoS.

terminal
Exemplo:

<?xml version="1.0"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<foo>&xxe;</foo>
  • Envie XMLs com entidades externas e veja se são processadas.
  • Tente acessar arquivos internos ou recursos remotos.

Por que acontece

Ocorre quando o parser XML permite entidades externas e processa dados não confiáveis.

  • Uso de parsers XML inseguros.
  • Falta de desabilitação de entidades externas.

Como Corrigir

  • Desabilite entidades externas em parsers XML.
  • Valide e sanitize todos os dados XML recebidos.
terminal
// Exemplo seguro em Node.js (xml2js)
const parser = new xml2js.Parser({
  explicitExternalEntities: false
});