¿Sabes qué es una vulnerabilidad de subida de ficheros y cómo puede identificarse en una aplicación web?
Las aplicaciones web son softwares que no están para nada exentos de presentar fallos de seguridad. Estos fallos, también conocidos como vulnerabilidades, deben hallarse antes de que lo hagan los hackers maliciosos para evitar que ocurran ciberataques. Por eso, es necesario ejecutar pruebas de penetración o pentests, es decir, ataques controlados y autorizados con el fin de encontrar puntos débiles y formas de explotarlos en las páginas.
En este post, hablaremos sobre una vulnerabilidad web que le permite a un atacante subir ficheros y ejecutarlos en la aplicación. De este modo, se pueden crear webshells para hacer ejecución remota de código en el servidor de la página. A continuación, te explicaremos qué es una vulnerabilidad de subida de ficheros y cómo se explota en ciberseguridad.
Vulnerabilidad de subida de ficheros
Una vulnerabilidad de subida de ficheros le permite al atacante subir archivos maliciosos a la aplicación. El fallo se produce a causa de una falta de validación del tipo de ficheros que la aplicación admite, lo cual debe indicarse desde el código fuente. De lo contrario, un hacker malicioso puede usar entradas de subidas de ficheros para instalar todo tipo de programas maliciosos en un servidor.
Uno de los métodos de explotación más comunes de una vulnerabilidad de subida de ficheros es incorporar una webshell a las bases de datos de la aplicación por medio de la subida de un archivo. De hecho, el sistema operativo para pentesters Kali Linux contiene una serie de webshells que se pueden usar de este modo, como lo veremos a continuación.
Ejemplo de ataque de subida de ficheros
Para entender mejor en qué consiste una vulnerabilidad de subida de ficheros, veremos un ejemplo práctico de un ciberataque que explota este fallo. Para ello, usaremos la aplicación web deliberadamente vulnerable, Damn Vulnerable Web App, que sirve para practicar técnicas de hacking de forma legal y segura.

Damn Vulnerable Web App (DVWA) es una aplicación web con vulnerabilidades que ha sido diseñada de esta forma a propósito con el fin de aprender y practicar estrategias de hacking. Lo primero que haremos será configurar su nivel de seguridad en el más bajo, haciendo clic en la pestaña «DVWA Security» y eligiendo la opción «Low«. Luego, iremos a la pestaña de «File Upload» para hacer el ataque de este ejemplo.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaAl entrar a este módulo, veremos la siguiente página:

Notaremos que la aplicación permite subir un archivo, así que, como pentesters, nos preguntaremos qué sucederá si subimos algún tipo de fichero que nos permita ejecutar tareas distintas en la aplicación.
A continuación, veremos cómo la vulnerabilidad de subida de ficheros nos permite subir un archivo y luego acceder a él desde la aplicación. Para ello, usaremos las webshells prediseñadas de Kali Linux, que se encuentran en la ruta /usr/share/webshells.

En esta ruta, entraremos a la carpeta «php» y escogeremos la opción de webshell básica, es decir, «simple-backdoor.php«.

Ahora, veremos si la aplicación de DVWA, efectivamente, nos permite subir este fichero con el payload.

Podemos comprobar que el archivo se ha subido gracias al mensaje que arroja la aplicación. De hecho, esta nos indica en qué ruta ha quedado guardado el fichero, por lo que ahora podemos acceder a él. Para ello, copiaremos y pegaremos la ruta que indica la página en su dirección URL del siguiente modo:
http://localhost/dvwa/hackable/uploads/simple-backdoor.php
Como resultado, veremos las instrucciones para ejecutar comandos en el servidor de la app, por medio de la webshell que hemos subido a su base de datos.

Ahora, probaremos algunos comandos con la sintaxis dada por la página. Dicha sintaxis es la siguiente:
http://target.com/simple-backdoor.php?cmd=cat+/etc/passwd
Lo que hemos puesto en negrita es el comando a ejecutar en el servidor. Veamos qué sucede si ejecutamos comandos como:
id

ls

pwd

cat /etc/passwd

En conclusión, como verás, la vulnerabilidad de subida de ficheros le permite a los atacantes realizar todo tipo de actividades en el servidor de la página, como borrar, subir y modificar archivos, así como exfiltrar datos confidenciales sobre los clientes de la app.
¿Cómo aprender más?
Ahora sabes qué es una vulnerabilidad de subida de ficheros y cómo afecta a las aplicaciones web. Si quieres aprender más, ingresa a nuestro Ciberseguridad Full Stack Bootcamp y conviértete en un especialista en tan solo 7 meses. ¿A qué sigues esperando para darle un giro a tu vida? ¡Inscríbete ya!