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:


📌 ¿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:


📚 Wordlists para Fuzzing

Para encontrar páginas, necesitamos una lista de palabras con nombres comunes de directorios y archivos.

🎒 Lo que debes saber:


📁 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

Tip

Usa -ic en ffuf para ignorar comentarios de las wordlists.
Esto mejora la precisión y te evita basura en los resultados.