Hacking web de manera práctica
Tiempo de lectura estimado: 8 minutos
Esta conferencia magistral pertenece al Módulo 9 “Pentesting” de C1b3rWall Academy 2021/2022. El objetivo de la misma es realizar algunos ejercicios prácticos de hacking web.
¿Qué es el hacking web?
El hacking web o pentesting de aplicaciones web consiste en la búsqueda y explotación de vulnerabilidades de seguridad en aplicaciones web. Interactuamos con estas aplicaciones web con protocolos normalmente a través del navegador, que están alojadas en un servidor web. OWASP crea una lista cada año con las categorías principales de vulnerabilidades de aplicaciones web:
OWASP también tiene un estándar reconocido que permite a las organizaciones controlar las vulnerabilidades de las aplicaciones. La guía OWASP proporciona controles para identificar y evaluar vulnerabilidades con numerosas funcionalidades que se encuentran en las últimas aplicaciones.
Vamos a utilizar DVWA para realizar algunos ejercicios prácticos de hacking web.
Fuerza bruta
No es una vulnerabilidad como tal, sino una de las técnicas que puede utilizar el atacante para acceder sin tener una cuenta. Siempre debe de ser el último recurso ya que consume mucho tiempo y puede ser imposible dependiendo de la dificultad de la contraseña.
Utilizamos Burp Suite y un proxy web para establecer una escucha con el navegador para que las peticiones que haga se vean reflejadas en Burp. Probamos con varias contraseñas comunes y vemos si en alguna de ellas devuelve un resultado diferente. En el caso de “password” la longitud es diferente, esa es la contraseña.
Command Injection
No podemos utilizar ciertos caracteres ya que los bloquea. Por tanto, tenemos que buscar un operador de comandos que nos permita ejecutar dos comandos a la vez en la misma línea. Con 8.8.8.8|id podemos redirigir la salida de un comando. Así, podemos ejecutar comandos del sistema por lo que es una vulnerabilidad grave, podríamos conseguir una shell reverse de forma remota.
File Inclusion
Se trata de algo legítimo, pero si está mal implementado puede hacer que se carguen cosas que no queremos ya que no solo carga texto sino también el código de dentro del archivo. Cambiando el texto de la URL podemos mostrar archivos del propio sistema, como la lista de usuarios del sistema en etc/passwd. Al ser php podemos ejecutar otros comandos.
Probamos a cargar la web de Google y funciona, por lo que podremos cargar cualquier cosa de internet. Utilizaremos la web pipedream que permite crear una URL a la que hacer una petición y devuelve lo que queramos, en este caso, un código php que tiene un web shell. Con este código ejecutaremos el comando system y podremos ejecutar todos los comandos que queramos.
File Upload
Nos indica dónde se ha subido un archivo. Creamos un archivo php para ver si somos capaces de subirlo. Como solo deja PNG y JPG probamos a subirlo a Burp Suite trabajando sobre la petición del repeater. Modificando el content type y cambiando JPG ya podemos subir el archivo sin problema.
SQL Injection
Nos permite buscar a través del ID del usuario. Sabemos que por debajo hay una base de datos a la que pregunta de quién es ese ID. También utilizaremos Burp Suite con el proxy intercepta y captura la petición para enviarla al repeater y trabajar con ella.
Con union select podemos mostrar la información oculta. Con order, si existe ese campo la consulta tendrá éxito y muestra el resultado. Así podemos mostrar los resultados solo de nuestra consulta. Con information shcema veremos todas las tablas del sistema, nos interesa los nombres de columnas y users. Escribimos qué queremos obtener y de qué tabla. Nos devuelve una lista de usuarios y contraseñas. Al ver solo el hash debemos sacar la contraseña por fuerza bruta con una función algorítmica que devuelva la contraseña correcta. Lo hacemos con Hashcat y nos muestra que la contraseña es “password”.
XSS
En el campo podemos escribir HTML y JavaScript. Con JavaScript podemos ejecutar comandos al cargar la página sin que ésta “quiera”. Podemos mostrar la cookie de sesión de usuario si no están bien configuradas. También se puede ejecutar una petición y enviar la cookie a un servidor remoto.
En DVWA se pueden practicar muchas vulnerabilidades web y se puede ajustar la dificultad hasta imposible, lo que sería una web segura.
En la masterclass en vídeo se muestran de manera práctica todos los ejercicios.
¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras 30.000 personas desde este enlace.
Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.
Ponente: Pablo Plaza Martínez
Analista de ciberseguridad en BISITE, miembro de la Selección Española de Ciberseguridad, profesor del Máster en Ciberseguridad de la USAL y participante en CTFs a nivel nacional e internacional.
¿Cuál es tu reacción?