Exploiting blind XXE to exfiltrate data using a malicious external DTD – PortSwigger Write Up
En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Exploiting blind XXE to exfiltrate data using a malicious external DTD.”
Pasos
Este laboratorio tiene una función “Check Stock” que analiza la entrada XML pero no muestra el resultado.
Para resolver el laboratorio, active un mensaje de error que contenga el contenido del archivo /etc/passwd.
Deberá hacer referencia a un archivo DTD existente en el servidor y redefinir una entidad a partir de él.
Vemos que en esta situación es una tienda donde podemos ver los detalles de los productos y si nos fijamos podemos ver el stock de cada uno de los productos.
Entonces ahora lo que haremos será inciar el Burp collaborator y copiar del clipboard
.
Elaboramos el payload con la dirección del burp collaborator, enviamos la petición y con el %
ejecutamos dentro de la identidad el ejecutable sin necesidad de llamarla fuera dentro de una variable
Ahora le damos a poll now y vemos que se ha ejecutado correctamente. Apagamos el proxy del burpsuite
y nos vamos al servidor del exploit.
Copiamos al URL que nos da el servidor del exploit para lanzar el ejecutable que tengamos desde ese servidor
Cambiando la URL que nos da el servidor en el payload le damos a send
para ver que tiene conexión el servidor del exploit.
Como vemos si nos vamos a access log
podemos ver que se ha ejecutado correctamente
Ahora vamos a volver al burp collaborator
, vamos a copiar el clipboard
y los vamos a pegar en el servidor del exploit para ejecutar el payload
.
Guardamos el exploit.
También podemos visualizar el exploit para ver de qué manera se vería y se enviará a la petición.
Si realiamos un poll now
nos llega la petición correctamente del servidor y tenemos la respuesta que nos pedían que era el hostname
Finalmente copìamos el hostname y lo enviamos y ya estaría resuelto el laboratorio.
¡Un saludo y espero que os sirva de apoyo!