Exploiting XXE via image file upload – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio de PortSwigger: “Exploiting XXE via image file upload.”

Pasos

Este laboratorio permite a los usuarios adjuntar avatares a los comentarios y utiliza la biblioteca Apache Batik para procesar archivos de imagen de avatar.

Para resolver el laboratorio, cargue una imagen que muestre el contenido del archivo /etc/hostname después de procesarlo. Luego, use el botón “Enviar solución” para enviar el valor del nombre de host del servidor.


Vemos que esta web es diferente a las demás, no es una tienda sino un sitio donde cada persona publica sus post.


En la siguiente imagen vamos a ir a Internet a buscar en Github un respositorio donde adjunto en el siguiente enlace payloads all the things, nos vamos al apartado de XXE y escogemos XXE in exotic files y la classic.

  • https://github.com/swisskyrepo/PayloadsAllTheThings
<?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>


Así que vamos a hacer una imagen con extensión svg y con un bloc de notas vamos a añadirle el payload incrustado para que cuando podamos subir la imagen ese payload se ejecute.


Entonces vamos a subir un post con la imagen que a la cual le hemos incrustado el payload.


Una vez tengamos el post con el burpsuite activado capturamos la petición y vemos que nos ha arrojado el payload que hemos inyectado anteriormente en la imagen.


Con el burpsuite ya desactivado, vamos a ver si nuestro post se ha publicado y efectivamente vemos que nuestro post se ha publicado exitósamente. Vamos a dar click derecho y a copiar dirección de imagen y copiaremos esa dirección de imagen en el navegador.


Como vemos en la imagen aparece el número de hostaname que será la respuesta al laboratorio.


Vamos a copiar la respuesta y a enviarla y con esto concluimos el laboratorio.



¡Un saludo y espero que os sirva de apoyo!