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!