
Descripción
This lab contains a vulnerable image upload function. Although it checks the contents of the file to verify that it is a genuine image, it is still possible to upload and execute server-side code.
To solve the lab, upload a basic PHP web shell, then use it to exfiltrate the contents of the file /home/carlos/secret
. Submit this secret using the button provided in the lab banner.
You can log in to your own account using the following credentials: wiener:peter
Remote code execution via polyglot web shell upload writeup
Para este laboratorio necesitaremos una máquina virtual Linux. Tendremos que añadir el código del archivo .php que creamos en los laboratorios anteriores en la descripción de una imagen. Para ello descargaremos una imagen cualquiera de internet (en mi caso nyan_cat.jpg) y usaremos el siguiente comando en Linux:
exiftool -comment="<?php echo 'INICIO' . file_get_contents('/home/carlos/secret') .'FIN'; ?>" nyan_cat.jpg -o nyan_cat_2.php
Nota: El archivo obtenido debe de tener la extensión .php
Nota: Si aparece un error al crear el archivo puede ser porque ya exista uno creado con ese mismo nombre, hay que borrarlo antes de ejecutar el comando, debe de aparecer la salida sin errores:

Con este comando estaremos poniendo código php en el campo de comentario de los metadatos de la foto.
Ahora subiremos esta foto en ‘My account’, en el apartado de foto de avatar. Al subirla, le daremos Click derecho -> Abrir imagen en una pestaña nueva. Veremos lo siguiente:

El contenido del archivo estará entre ‘INICIO’ y ‘FIN’.
Nota: Si al abrir esta página aparece un error 500 es porque el código php tiene un error (en mi caso era el ‘;’, que no estaba en el lugar correcto).
Copiaremos la solución, en mi caso ‘FOK3Pj5InYpHbMzQXymkX0mq4vQQS03X’ y la enviaremos tras pulsar en ‘Submit solution’, completando así el laboratorio:
