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
});