Explotación de la Vulnerabilidad de Inyección XML External Entity (XXE)
Una vulnerabilidad XML External Entity (XXE) Injection es una brecha de seguridad que aprovecha el procesamiento de archivos XML para acceder a recursos a los que normalmente no se debería tener acceso. Esto ocurre cuando un atacante introduce datos XML manipulados en una solicitud, logrando exponer información confidencial o acceder a recursos del sistema, como archivos locales o servicios de red.
Un ataque XXE implica inyectar entidades XML maliciosas en las solicitudes HTTP. Por ejemplo, un atacante podría usar una entidad XML para apuntar a archivos en el servidor y extraer información sensible, como contraseñas o nombres de usuario.
La debilidad se presenta cuando un servidor web no valida correctamente la entrada XML, permitiendo que un atacante inyecte entidades maliciosas para acceder a archivos del sistema a los que el servidor tiene acceso. Esto facilita la obtención de datos confidenciales.
A veces, los ataques XXE no revelan información sensible de inmediato. En estos casos, el atacante puede usar técnicas «a ciegas», como enviar peticiones especialmente diseñadas para conectarse a un Document Type Definition (DTD) externo que valida la estructura del XML y puede hacer referencia a recursos del sistema.
El enfoque «a ciegas» requiere más tiempo y esfuerzo, pero puede ser efectivo si el atacante tiene cierta información sobre los recursos disponibles en el sistema y busca obtener datos específicos sin levantar sospechas.
Además, un ataque XXE puede ser utilizado como punto de partida para explotar una vulnerabilidad como un Server-Side Request Forgery (SSRF). Esta técnica permite al atacante escanear puertos internos, normalmente protegidos por un firewall, al inyectar una entidad XML que apunta a direcciones IP o puertos internos en la red del servidor.
Al explotar con éxito un SSRF, el atacante puede enviar solicitudes HTTP a servicios internos y obtener información sensible o incluso tomar el control de estos servicios.
Cuando enviamos una solicitud al servidor web vemos que se envía en formato XML, cuando vemos esto podemos intuir una vulnerabilidad de XXE.

Esta es la inyección XXE más básica, es la inyección de un archivo, en este caso, modificaremos la entidad creada con un wrapper para obtener acceso a un archivo de la máquina victima y finalmente podremos mostrarlo por pantalla gracias al campo de el correo electrónico que, como puede ver, es el que se refleja en la salida. En este caso hemo llamado a la entidad «&Curiosos» (puedes nombrarla como quieras).
XXE OOB BLIND
Aquí lo que estamos haciendo es una inyección a ciegas mandándonos el output a nuestro servidor Python









