XEE Injection

📌
XML External Entities acontece por meio de arquivos XML maliciosos provenientes de fontes externas (como upload de notas fiscais)
Dado um sistema mal configurado, que retorna dados que recebeu na request, o seguinte XML iria expor um arquivo privado do servidor:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE descricao [ <!ELEMENT descricao ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd!"> ]> <cadastro> <email>douglas@verfault.com</email> <senha>V%2aa(sxcK12t9</senha> <descricao>&xxe;</descricao> </cadastro>
Se a response retornar o campo descricao sem tratamento algum, o atacante terá acesso a informação contida pelo arquivo /etc/passwd

Prevenção

A grande maioria das informações disponíveis sobre esse ataque estão disponíveis nesse link. Mas as prevenção são basicamente:
  • Bloquear recursos de XML ENtity em operações XML com arquivos não gerênciados.
  • Validar e sanitizar as entradas não gerenciadas.