Post

XXE en la subida de avatar (Portra)


Vamos a ver la aplicación web:

Si vamos a Entrar veremos un formulario de inicio de sesión donde nos darán las siguientes credenciales:

  • m.rivas:Portra-2026

Vamos a iniciar sesión:

Si investigamos la aplicación web podremos encontrar que nos ofrecen la funcionalidad de subir una imagen como foto de perfil:

Como primeras vamos a intentar subir una imagen .svg para ver si la procesa y la acepta:

Vemos que no lo permite. Vamos a subir un .png normal a ver cual es el proceso:

Vemos que un .png si lo acepta y procesa. Vamos a enviar esta solicitud al Repeater e intentar modificar la extensión a .svg para ver lo acepta:

Vemos que no lo bloquea, esto puede ser debido a:

  1. Content-Type
  2. Magic Bytes

Ahora vamos a intentar insertar el contenido de un SVG verídico e intentar meter en él el siguiente payload XXE:

Payload:

1
<!DOCTYPE test [<!ENTITY data SYSTEM "file:///etc/passwd">]>

Y para mostrarlo en el contenido del SVG:

1
<text x="0" y="16" witdh="100">&data;</text>

Vamos a probarlo:

Vemos que la funcionalidad de foto de perfil es vulnerable a un XXE via SVG file upload.


This post is licensed under CC BY 4.0 by the author.