Entrada

XXE Injection Lab 7

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

Esta entrada está licenciada bajo CC BY 4.0 por el autor.