BBLABS v2BBLABSv2
>Inicio>Labs
>New labs

Últimos 3 labs

Cargando…

Ver todos los labs →
>Creators>Ranking
>Aprender

Aprender bug bounty

AcademyGuías, cheatsheets y diccionarioVulnerabilidadesXSS, SQLi, IDOR, SSRF y másHunter RoadmapTu ruta de bug bounty paso a pasoBlogGuías y noticias de bug bounty
>Empresa>Precios
EN
AccederAcceder
>Inicio>Labs>New labs>Creators>Ranking>Aprender>Empresa>Precios
EN
Iniciar SesiónCrear Cuenta

Contacto

Practica, aprende y hackea

Plataforma de práctica de bug bounty con labs basados en reportes reales. Aprende hacking ético en entornos seguros.

contactar→

Síguenos

YouTube
@0xGorka
X
@gorkaelbochi
LinkedIn
gorka-el-bochi-morillo
Instagram
@_.gorkaaa.b
Email
team@bblabs.es

Accede a todos los labs desde 7,99€/mes

Nuevos labs cada semana. Cancela cuando quieras.

Crear cuenta

BBLabs es la plataforma de laboratorios de bug bounty en español donde aprender bug bounty con vulnerabilidades reales extraídas de reportes pagados en HackerOne, Bugcrowd e Intigriti. Aquí practicas hacking web —XSS, SQLi, IDOR, SSRF, CSRF y más— en entornos descargables, capturas la flag, lees el writeup y aplicas la técnica en programas activos de bug bounty.

BBLabs es la alternativa en español a HackTheBox, TryHackMe y PentesterLab para quienes quieren practicar bug bounty con reportes reales en lugar de CTFs artificiales. Desde 7,99€/mes, sin permanencia.

→ Aprender bug bounty desde cero→ Cómo hacer bug bounty paso a paso→ Reportes de bug bounty reales→ BBLabs para empresas y academiasLabsAcademyVulnerabilidadesHerramientasRanking de huntersLabs de XSSLabs de IDORLabs de SSRFLabs de CSRFHackTheBox alternativaHack4u alternativaTryHackMe alternativaPortSwigger alternativaPentesterLab alternativaBug Bounty Labs comparativaHackerOne para practicarOffSec / OSCP alternativaINE / eWPT alternativaHTB Academy alternativaDVWA alternativaJuice Shop alternativaVulnHub alternativaPentesterAcademy alternativaRoot-Me alternativaHackTheBox vs TryHackMeMejores plataformas bug bounty 2026BlogSpoilers¿Qué es el bug bounty?¿Cuánto se gana en bug bounty?OWASP Top 10 explicadoMejores webs para practicar hacking webCómo ser hacker ético desde ceroTutorial de Burp Suite en españolOSCP en español: guía y preparaciónGoogle Dorks para bug bountyCuánto gana un hacker ético en EspañaHerramientas de bug bounty 2026Mejores certificaciones de ciberseguridad 2026Burp Suite tutorialsqlmap tutorialffuf fuzzing webnuclei tutorialHTTP Request SmugglingWAF bypassPrompt injection (LLM)Google Dorks
Hecho cony código
TérminosPrivacidadComparativaEN

© 2026 BBLABS v2 — Todos los derechos reservados

back to blog
herramientas

ffuf: fuzzing web desde cero (directorios, vhost y parámetros)

Tutorial de ffuf en español: fuzzing de directorios, subdominios/vhosts y parámetros GET/POST, cómo filtrar ruido con -fc/-fs y calibrar con -mc/-ac, wordlists de SecLists y cuándo usar gobuster o dirsearch como alternativas.

GEB

Gorka El Bochi

Fundador de BBLABS

2026-07-2111 min read
#ffuf#fuzzing#recon#herramientas#seclists

Respuesta rápida: ffuf (Fuzz Faster U Fool) es un fuzzer web escrito en Go, rapidísimo, que descubre contenido oculto sustituyendo la palabra FUZZ por cada línea de una wordlist. Sirve para encontrar directorios, ficheros, subdominios (vhosts) y parámetros. La clave no es lanzarlo, sino filtrar el ruido con -fc, -fs o auto-calibración.

¿Qué es ffuf y por qué se usa tanto?

En recon web, gran parte de lo interesante no está enlazado: paneles de admin, endpoints de API viejos, ficheros de backup, entornos de staging. El fuzzing consiste en probar miles de rutas y parámetros para descubrir lo que no ves a simple vista. ffuf lo hace muy rápido y con un sistema de filtros excelente.

El concepto central es la palabra clave FUZZ: la pones donde quieres que ffuf itere y él sustituye por cada entrada de la wordlist. Encaja de forma natural en un flujo de recon más amplio, después de haber enumerado dominios y subdominios.

¿Por qué ffuf y no un navegador o un crawler? Porque el crawler solo sigue enlaces que existen en el HTML, y lo interesante en bug bounty suele ser justo lo que no está enlazado. El fuzzing prueba a ciegas rutas y parámetros plausibles y descubre esa superficie invisible. Es una de las primeras técnicas que te dan hallazgos reales, y ffuf la hace tan rápida que puedes lanzarla en cada objetivo sin que sea un cuello de botella.

¿Cómo hacer fuzzing de directorios y ficheros?

El uso más habitual: descubrir rutas. Pones FUZZ en el path:

ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt \
     -u https://target.com/FUZZ

ffuf lanza una petición por cada palabra y te muestra el código de estado, tamaño, palabras y líneas de cada respuesta. Para buscar extensiones concretas, usa -e:

ffuf -w wordlist.txt -u https://target.com/FUZZ -e .php,.bak,.old,.zip,.txt

Esto prueba ruta, ruta.php, ruta.bak, etc. Los .bak, .old y .zip esconden a menudo código fuente o backups jugosos.

Filtrar el ruido: el 80% del trabajo

Un fuzzing en crudo devuelve cientos de respuestas basura (páginas 404 que responden 200, redirecciones, plantillas de error). Aprender a filtrar es lo que separa el ruido de los hallazgos:

  • -mc (match code): muestra solo estos códigos. Ej. -mc 200,301,302,401,403.
  • -fc (filter code): oculta estos códigos. Ej. -fc 404.
  • -fs (filter size): oculta respuestas de este tamaño en bytes. Perfecto cuando el 404 personalizado siempre pesa lo mismo.
  • -fw / -fl: filtra por número de palabras o de líneas.
  • -ac (auto-calibration): ffuf lanza unas cuantas peticiones falsas al principio, aprende cómo se ve una respuesta "vacía" y filtra automáticamente. El botón fácil cuando no sabes qué filtrar.

Un ejemplo realista, filtrando el 404 personalizado que siempre mide 1234 bytes:

ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
     -u https://target.com/FUZZ \
     -fs 1234 -mc all -t 60

Con -t controlas los hilos (por defecto 40). No te pases: martillear un servidor pequeño con 200 hilos es una forma rápida de tirarlo o de que te baneen.

¿Cómo descubrir subdominios y vhosts con ffuf?

El vhost fuzzing busca hosts virtuales que responden en la misma IP pero solo si mandas la cabecera Host correcta (no aparecen por DNS). Pones FUZZ en la cabecera:

ffuf -w subdominios.txt \
     -u https://target.com \
     -H "Host: FUZZ.target.com" \
     -fs 0

Como todos los vhosts inválidos suelen devolver la misma página por defecto, filtra por su tamaño con -fs (o usa -ac). Los vhosts que respondan distinto son candidatos a entornos internos o de staging. Esto complementa la enumeración pasiva de subdominios que cubro en técnicas de recon avanzadas.

Fuzzing de parámetros GET y POST

ffuf también descubre parámetros ocultos, esos que la app procesa pero no documenta y que a menudo esconden IDOR o debug flags.

Parámetro GET (nombre del parámetro):

ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
     -u "https://target.com/api?FUZZ=test" \
     -fs 42

Valores POST (por ejemplo, fuerza bruta de un ID en un cuerpo de formulario):

ffuf -w ids.txt \
     -u https://target.com/api/user \
     -X POST \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "id=FUZZ" \
     -mc 200

Puedes tener varias wordlists a la vez con nombres de keyword propios (-w users.txt:USER -w pass.txt:PASS) y usar USER y PASS en la misma petición. Con -mode clusterbomb o pitchfork controlas cómo se combinan: clusterbomb prueba todas las combinaciones (ideal para fuerza bruta de credenciales), pitchfork empareja línea con línea.

¿Cómo interpretar los resultados?

ffuf te muestra por cada hallazgo: la palabra, el código de estado, el tamaño (Size), las palabras (Words) y las líneas (Lines). Aprender a leerlos evita perseguir falsos positivos:

  • Códigos 200 son el objetivo obvio, pero ojo: muchas apps devuelven 200 incluso para rutas inexistentes (el famoso "soft 404"). Ahí es donde -fs/-fw salvan el día: filtras por el tamaño constante de esa página de error.
  • 301/302 revelan redirecciones interesantes. Un /admin que redirige a /login te confirma que existe un panel.
  • 401/403 son oro: la ruta existe pero está protegida. Un montón de 403 es señal de que hay superficie escondida que quizá puedas desbloquear por otra vía.
  • Size/Words/Lines idénticos entre muchos resultados casi siempre significan una plantilla de error repetida. Fíltrala y quédate con lo que se sale del patrón.

La disciplina mental es: ¿qué se desvía del comportamiento base del objetivo? Eso es lo que merece una mirada manual.

Recursión, regex y control del ritmo

Cuando descubres un directorio interesante (/api/, /admin/), quieres fuzzear dentro de él sin relanzar a mano. La recursión lo automatiza:

ffuf -w wordlist.txt -u https://target.com/FUZZ \
     -recursion -recursion-depth 2 -mc 200,301,403

ffuf entra en cada directorio encontrado y sigue fuzzeando hasta la profundidad indicada. Úsalo con cabeza: la recursión multiplica el número de peticiones muy rápido.

Para casos finos, el matching por regex es más potente que por código o tamaño:

  • -mr (match regex): muestra respuestas cuyo cuerpo cumple una expresión, ej. -mr "admin|dashboard|token".
  • -fr (filter regex): oculta las que cumplen un patrón de error conocido.

Y sobre el ritmo, la parte ética: no martillees al objetivo. Controla el volumen con -rate (peticiones por segundo) y -p (delay aleatorio entre peticiones):

ffuf -w wordlist.txt -u https://target.com/FUZZ -rate 50 -p 0.1

Un fuzzing agresivo puede tumbar un servidor pequeño o hacer que te baneen del programa. En objetivos delicados, baja el rate y avisa si el programa lo pide.

Wordlists: la materia prima

El fuzzing es tan bueno como tu wordlist. La referencia es SecLists. Algunas que uso a diario:

  • Discovery/Web-Content/raft-medium-directories.txt y raft-medium-files.txt — equilibrio señal/tamaño.
  • Discovery/Web-Content/common.txt — rápida para una primera pasada.
  • Discovery/DNS/subdomains-top1million-5000.txt — subdominios/vhosts.
  • Discovery/Web-Content/burp-parameter-names.txt — nombres de parámetros.

Guarda los resultados con -o salida.json -of json para procesarlos luego o encadenarlos con otras herramientas.

Encadenar ffuf con tu recon

ffuf no vive aislado: es una pieza dentro del flujo de recon. Un patrón muy productivo es fuzzear muchos hosts a la vez. Con la keyword en el propio dominio, iteras sobre una lista de subdominios vivos que salió de tu enumeración:

ffuf -w hosts-vivos.txt:HOST -w rutas.txt:RUTA \
     -u https://HOST/RUTA -mc 200,301,403 -o hallazgos.json -of json

Así, un directorio /backup/ que solo existe en un subdominio olvidado aparece sin que lo busques a mano host por host. El JSON de salida se puede filtrar con jq, alimentar a Nuclei o mandar a tus notas.

La disciplina que marca la diferencia: no vuelques el output y te olvides. Revisa a mano cada 200/403 interesante en Burp, porque el hallazgo de verdad casi nunca es "existe la ruta", sino lo que hay dentro de ella. El fuzzing te lleva a la puerta; abrirla es trabajo manual.

ffuf vs gobuster vs dirsearch

No hay una única herramienta correcta; conviene conocer las alternativas:

  • gobuster: también en Go, muy sólido, con modos dir/dns/vhost. Sintaxis más rígida que ffuf pero muy cómodo para descubrimiento de directorios y DNS.
  • dirsearch: en Python, trae wordlists integradas y buen manejo de extensiones out-of-the-box. Cómodo para empezar rápido sin configurar.
  • ffuf: el más flexible y rápido para casos raros (vhost, parámetros, multi-wordlist, filtros finos).

En la práctica, muchos hunters usan los tres según la situación. ffuf es el que más da de sí cuando el escenario se sale de lo estándar.

Preguntas frecuentes (FAQ)

¿Qué wordlist uso si no sé por dónde empezar?
Para directorios, raft-medium-directories.txt de SecLists es un equilibrio excelente entre cobertura y tiempo. Para una primera pasada rápida, common.txt. Ajusta según lo que veas.

Todos mis resultados salen con el mismo tamaño, ¿qué hago?
Es el 404 personalizado del objetivo respondiendo 200. Fíltralo con -fs <ese tamaño> o usa -ac para que ffuf calibre solo. Es el paso que más frustra a los principiantes y el que más resultados desbloquea.

¿ffuf hace fuzzing de subdominios reales (DNS)?
El vhost fuzzing de ffuf descubre hosts virtuales por la cabecera Host, que no aparecen por DNS. Para enumeración de subdominios vía DNS/fuentes públicas, subfinder o amass son mejores; ffuf complementa encontrando los vhosts "ocultos" en la misma IP.

¿Es legal hacer fuzzing?
Solo con permiso. Genera mucho tráfico y toca rutas que el dueño no expone a propósito. Hazlo en tus labs o dentro del scope de un programa que lo autorice.

Buenas prácticas y ética

  • Respeta el scope y el rate. El fuzzing genera mucho tráfico. Usa -t con cabeza y -p (delay) si el objetivo es sensible.
  • Enruta por Burp con -x http://127.0.0.1:8080 para revisar a mano los hallazgos interesantes.
  • Calibra siempre. Un fuzzing sin filtrar es ruido inservible. Dedica los primeros minutos a entender cómo responde el 404 del objetivo.
  • Encadénalo. El fuzzing es una pieza del recon, no el final. Lo que encuentres se prueba después.

Para practicar el flujo completo —descubrir superficie, entender qué has encontrado y explotarlo— entrena con labs que replican reportes reales y sigue una ruta ordenada. El fuzzing con ffuf es una de las primeras habilidades que te dan resultados: cuanto antes lo domines, antes empiezas a encontrar cosas que otros no ven.

share
share:
hunters entrenando
650

hunters entrenando

labs de reportes reales
50

labs de reportes reales

completaciones
380

completaciones

en bounties practicados
$200.000

en bounties practicados

40 flags capturadas esta semana·Reportes reales de HackerOne · Bugcrowd · Intigriti·Sin permanencia·Academy gratis
BBLabs · bug bounty en español

Deja de leer sobre bugs y empieza a cazarlos

Crea tu cuenta gratis y practica sobre labs basados en reportes reales que pagaron miles de euros. La Academy es gratis para siempre.

Crear cuenta gratisVer los labs

Sin tarjeta · Academy gratis · cancela cuando quieras

[RELATED_POSTS]

Continue Reading

herramientas

Cómo configurar tu entorno de Bug Bounty

Todo lo que necesitas para montar un entorno profesional de bug bounty: desde la elección del sistema operativo hasta la automatización de reconocimiento.

Feb 22, 2026•15 min read
metodología

Técnicas de Recon avanzadas

Lleva tu fase de reconocimiento al siguiente nivel con técnicas avanzadas de enumeración de subdominios, análisis de archivos JavaScript, GitHub dorking y automatización.

Jan 15, 2026•18 min read
herramientas

Burp Suite desde cero: tutorial en español para bug bounty (2026)

Tutorial de Burp Suite en español desde cero: qué es, instalación y configuración del proxy (127.0.0.1:8080 + certificado CA), Proxy/Intercept, Repeater, Intruder, Decoder, extensiones útiles, Community vs Pro y un flujo real de caza.

2026-07-21•15 min read