Laboratorio: carga de shell web mediante omisión de restricción de tipo de contenido
Last updated
Last updated
Para este caso usaremos la misma web shell que habíamos creado para el laboratorio anterior.
<?php echo file_get_contents('/home/carlos/secret'); ?>
Ingresamos como wiener, y subimos el archivo de xploit.php:
Subimos el archivo por ahí →
Como vemos no funciona subir el archivo, entonces vamos a interceptar con burp y cambiemos el tipo de dato esperado para que podamos subir el PHP como no hace la verificación de coincidencias con el MIME, por ello podemos hacerlo.
Revisamos el POST de cambiar la foto del avatar y lo revisamos el encabezado content-type para ver que es lo que tiene:
Como vemos toma y reconoce que el archivo que enviamos es un texto de tipo .PHP entonces por ello no acepta el subir ese archivo como el lab anterior que antes no validaba el tipo de archivo, en este caso si lo valida, lo que comete mal esta pagina con este nuevo lab es que validan el tipo de archivo pero no validan que el tipo de contenido del encabezado content-type coincida con el MIME esperado. Por ello si cambiamos el content-type: image/png podemos enviar el archivo PHP y esta vez si será subido correctamente.
Ahí está y de esa forma es como podemos lograr que se pueda efectuar la subida del archivo .php
Cargamos la imagen en una nueva ventana:
Y vemos que si ahora si abrimos la imagen, Guala:
Hemos obtenido el secreto del directorio home/carlos/secret
0z5zV00YeLDvZqgtOysIgC5VIuLf2wmo
→ Secret.