01
Reconocimiento: mira la web como un usuario normal
Antes de lanzar nada, recorre la web a mano. Menú, secciones, formulario de contacto. La mayoría es texto y formularios que no llevan a ningún lado. Lo que buscas es por dónde entrar.
whatweb http://objetivo.local -
whatweb te dice tecnología, servidor y CMS de la web. Viene en Kali.
02
Fuzzing de directorios con ffuf
La web tiene directorios que no están enlazados en el menú. ffuf prueba miles de nombres de una wordlist contra la URL y te dice cuáles existen de verdad. FUZZ marca el sitio donde inserta cada palabra.
ffuf -u http://objetivo.local/FUZZ -w /usr/share/wordlists/dirb/common.txt -
-u la URL objetivo. FUZZ es el hueco donde prueba cada palabra. -
-w el diccionario. Este viene por defecto en Kali. -
-mc opcional: -mc 200,301,302 filtra por códigos de respuesta y te quedas solo con lo que existe.
03
Dar con el directorio /intranet
Entre los resultados sale uno que no debería estar a la vista: /intranet. Lo abres en el navegador y aparece un portal de gestión con login. No tienes credenciales, así que toca probar.
http://objetivo.local/intranet 04
Probar si el login es vulnerable a SQL injection
El primer test, el más viejo: meter una comilla simple en el campo de usuario. Si la web está mal hecha, esa comilla descuadra la consulta y suelta un error SQL. Ese error te confirma dos cosas: que es inyectable y, encima, te enseña parte de la consulta.
usuario: ' -
' una comilla suelta rompe la query. Si ves un SQL error, es vulnerable.
05
Bypass del login con ' or 1=1 --
Ya sabes que es vulnerable, ahora entras. En el campo de usuario pones admin, cierras la comilla y añades or 1=1 para que la condición siempre se cumpla. El doble guion comenta el resto de la consulta, incluida la comprobación de la contraseña. La base de datos devuelve el usuario admin y te loguea.
usuario: admin' or 1=1 -- La consulta queda así:
SELECT * FROM users WHERE user = 'admin' or 1=1 -- ' AND pass = '...' -
admin' cierra la comilla del nombre de usuario. -
or 1=1 una condición que siempre es verdadera. -
-- comenta lo que va después (el AND pass). Ojo al espacio final.
06
Dentro: dashboard y flag
Estás dentro como administrador. Ves el dashboard completo: pedidos, datos personales, todo. En un lab, aquí está la flag, el resultado que confirma que lo lograste. Todo falso, claro, son personajes de la serie. Lo importante es lo fácil que ha sido cuando la web está mal parametrizada.
Solo fines educativos. Prueba esto en webs propias o en labs y CTF autorizados, nunca contra una web ajena.