/
XXE

XXE

La inyección de Entidades Externas XML (XXE), es un tipo de ataque contra una aplicación que analiza la entrada de XML.
Este ataque ocurre cuando la entrada de un XML no confiable que contiene una referencia a una entidad externa, es procesada por un analizador XML configurado de manera insegura.
La siguiente guía proporciona información concisa para prevenir esta vulnerabilidad.

Riesgo del ataque

  • Robo de ficheros del servidor.

  • Divulgación de datos confidenciales.

  • Denegación de servicio (DoS).

  • Falsificación de solicitudes del lado del servidor (SSRF).

  • Escaneo de puertos desde la perspectiva de la máquina en la que se encuentra el analizador.

 

Código vulnerable 1:

XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); // This may not be strictly required as DTDs shouldn't be allowed at all, per previous line. reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", true); reader.setFeature("http://xml.org/sax/features/external-general-entities", true); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", true);

Solución:

Se debe implementar una validación que impida introducir más parámetros de los necesarios, así como caracteres innecesarios.

En este caso se debe implementar con Sentencias Preparadas.

XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); // This may not be strictly required as DTDs shouldn't be allowed at all, per previous line. reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);

Referencias:

Para obtener más información sobre XXE, visite XML External Entity (XXE):

https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html

Related content