Exploiting blind XXE to retrieve data via error messages – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Exploiting blind XXE to retrieve data via error messages.”

Pasos

Este laboratorio tiene una función “Chack Stock” que analiza la entrada XML pero no muestra el resultado.

Para resolver el laboratorio, use un DTD externo para activar un mensaje de error que muestre el contenido del archivo /etc/passwd.

El laboratorio contiene un enlace a un servidor de exploits en un dominio diferente donde puede alojar su DTD malicioso.


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, vamos al laboratorio e interceptamos en segundo plano todos los paquetes en el burpsuite, entonces vamos a un producto y hacemos clic en Check stock y buscamos el paquete en el Http history y lo enviamos al Repeater.


Entonces ahora lo que haremos será inciar el Burp collaborator y copiar del clipboard.



Pegamos en el payload la dirección del clipboard y enviamos la petición, 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


Como podemos ver si le damos a send y a ver los logs del servidor del exploit podemos ver que se ha ejecutado correctamente.



Finalmente cargamos el payload en el body del formulario, le damos a store para así guardar el exploit y le damos a send para enviarlo. Como vemos finalmente concluimos el laboratorio ya que nos envía el /etc/passwd.




¡Un saludo y espero que os sirva de apoyo!