Fuzzing Web con ffuf – Introducción y Conceptos Básicos
Comencemos aprendiendo los conceptos básicos para usar ffuf y descubrir directorios ocultos en aplicaciones web.
Al acceder al ejercicio del módulo, encontramos un sitio con esta apariencia:
http://SERVER_IP:PORT
🖥️ Una simple página de bienvenida sin enlaces ni navegación visible.
Esto significa que nuestra única opción es…
👉 ¡Fuzzear el sitio web!
🧪 ¿Qué es el Fuzzing?
El fuzzing es una técnica que consiste en enviar múltiples entradas a una interfaz (web, API, binario…) para estudiar cómo reacciona.
🔍 Ejemplos:
-
Para buscar SQLi, enviaríamos cadenas especiales:
-
' OR 1=1 -- -
") AND SLEEP(5) --`
-
-
Para un buffer overflow, enviaríamos:
AAAAA...(miles de veces, aumentando longitud)
-
Para web fuzzing, enviamos:
-
Directorios comunes:
admin,login,uploads, etc. -
Archivos comunes:
index.html,config.php, etc.
-
📌 ¿Por qué necesitamos fuzzear?
Un servidor web no nos muestra todas las rutas disponibles (a menos que esté mal configurado 🔥).
Ejemplo:
❌ Página inexistente
https://www.hackthebox.eu/doesnotexist
→ Código 404 Not Found
✔️ Página existente
https://www.hackthebox.eu/login
→ Código 200 OK
💡 Este comportamiento es la base del fuzzing web.
⚙️ Automatización con Herramientas
Hacer esto manualmente sería interminable.
Herramientas como ffuf, dirsearch, gobuster, o ZAP Fuzzer:
-
Envían cientos de solicitudes por segundo 🚀
-
Controlan el código HTTP
-
Identifican recursos válidos
-
Permiten descubrir contenido oculto en minutos
📚 Wordlists para Fuzzing
Para encontrar páginas, necesitamos una lista de palabras con nombres comunes de directorios y archivos.
🎒 Lo que debes saber:
-
No encontraremos todo (porque algunos nombres son únicos o muy aleatorios)
-
Pero sí un 80–90% del contenido real
-
Existen wordlists diseñadas específicamente para fuzzing web
📁 SecLists (Incluido en Pwnbox)
En tu máquina de HTB tienes el repositorio completo:
/opt/useful/SecLists/
Para fuzzing web, usamos:
directory-list-2.3-small.txt
Puedes localizarlo así:
locate directory-list-2.3-small.txt
Salida:
/opt/useful/seclists/Discovery/Web-Content/directory-list-2.3-small.txt
⚠️ Nota importante sobre comentarios de Wordlists
Esta wordlist incluye comentarios al inicio, los cuales pueden contaminar tus resultados.
💡 Para ignorar líneas que comienzan con #:
Usa el flag:
-ic
Ejemplo:
ffuf -w directory-list-2.3-small.txt -u http://SERVER_IP:PORT/FUZZ -ic
Esto limpia la entrada y evita falsos positivos.
📌 Callout resumen
Usa -ic en ffuf para ignorar comentarios de las wordlists.
Esto mejora la precisión y te evita basura en los resultados.