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:
- Content-Type
- 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.