
Descripción
This lab contains a vulnerable image upload function. The server is configured to prevent execution of user-supplied files, but this restriction can be bypassed by exploiting a secondary vulnerability.
To solve the lab, upload a basic PHP web shell and 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
Web shell upload via path traversal writeup
Después de ir a «My account», encontramos dónde subr la web shell:

Como se nos pide acceder a la misma ruta, usaremos este código simple empleado en el writeup del laboratorio anterior:
<?php echo file_get_contents('/home/carlos/secret'); ?>
Interceptamos la subida del archivo con el logger de Burp Suite:

Lo enviamos al «Repeater» con Ctrl + R o con Click derecho –> Send to repeater. Según el enunciado, la página web sube las imágenes a una carpeta donde no se puede ejecutar código php, por lo que tenemos que manipular la subida para guardar el archivo fuera de esta carpeta y poder ejecutar el comando.
Añadimos al nombre del archivo «../», de la siguiente manera:

Ahora, seleccionamos los caracteres añadidos y pulsamos click derecho –> Convert selection –> URL –> URL-encode all characters, obteniendo el siguiente resultado al enviar:

Ahora, el archivo se ha subido con el nombre «../basic_shell.php», y el servidor interpretará el ‘../’ como una subida de nivel de directorio, guardando el archivo fuera de la carpeta con medidas de seguridad. Volvemos al navegador e inspeccionamos la imagen de avatar:

Ahora podremos acceder al archivo en ‘https://0a1200ae0425ea9e8136b64300a00066.web-security-academy.net/files/basic_shell.php’:

Copiamos el código y lo llevamos al laboratorio, lo introducimos en ‘Submit solution’ y, al presionar ‘Aceptar’, habremos completado el laboratorio.
