Vulnerabilidad de subida de ficheros

Autor: | Última modificación: 14 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿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.

Vulnerabilidad de subida de ficheros 1

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 semana

Al entrar a este módulo, veremos la siguiente página:

Vulnerabilidad de subida de ficheros 2

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.

Vulnerabilidad de subida de ficheros 3

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

Vulnerabilidad de subida de ficheros 4

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

Vulnerabilidad de subida de ficheros 5

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.

Vulnerabilidad de subida de ficheros 6

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
Vulnerabilidad de subida de ficheros 7
ls
Vulnerabilidad de subida de ficheros 8
pwd
Vulnerabilidad de subida de ficheros 9
cat /etc/passwd
Vulnerabilidad de subida de ficheros 10

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!

[email protected]