Filtering Results con VHOST en ffuf
Hasta ahora no hemos utilizado filtros en ffuf.
Por defecto, ffuf solo filtra códigos 404, lo que significa que toda respuesta válida (200, 301, 403, etc.) se mostrará.
Pero en VHost Fuzzing ocurre un problema:
👉 Muchas respuestas son 200 OK, incluso cuando el VHost no existe.
Por lo tanto, necesitamos otro modo de filtrar.
🧰 Opciones de Filtering y Matching en ffuf
Podemos ver todas las opciones con:
ffuf -h
📌 Extracto importante:
MATCHER OPTIONS:
-mc Match HTTP status codes
-ml Match amount of lines
-mr Match regexp
-ms Match response size
-mw Match amount of words
FILTER OPTIONS:
-fc Filter HTTP status codes
-fl Filter by line count
-fr Filter regexp
-fs Filter by response size
-fw Filter by word count
🧠 ¿Qué filtramos en VHost fuzzing?
Cuando hicimos el fuzzing por VHost, todas las respuestas incorrectas tenían tamaño 900 bytes.
Entonces podemos usar esto:
-fs 900
Esto filtrará solo las respuestas con tamaño 900, eliminando todos los falsos positivos.
En fuzzing de VHosts, generalmente:
✔️ Filtramos por tamaño
❌ No usamos matching por código, porque casi todo es 200 OK.
🚀 Ejecutar ffuf con filtro por tamaño
ffuf -w /opt/useful/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ \
-u http://academy.htb:PORT/ \
-H 'Host: FUZZ.academy.htb' \
-fs 986

📊 Resultado relevante
admin [Status: 200, Size: 0, Words: 1, Lines: 1]
Ese tamaño no coincide con 900 → por eso aparece.
Ese es un VHost real.
🌐 Verificación manual
Agregar a /etc/hosts:
<IP> admin.academy.htb
Luego visitar:
https://admin.academy.htb:PORT/
La página se carga, pero está vacía → es un sitio diferente al VHost principal.

También:
-
https://admin.academy.htb:PORT/blog/da 404 -
https://academy.htb/blog/sí existe
Esto confirma que estamos en otro VHost totalmente diferente.
🧪 Último paso: Recursión
Para continuar, intenta hacer fuzzing dentro del VHost encontrado:
ffuf -w /opt/useful/seclists/Discovery/Web-Content/common.txt:FUZZ \ -u https://admin.academy.htb:PORT/FUZZ
Si quieres hacerlo más pro:
Recordar agregar:
-k # Ignorar errores SSL -recursive # Hacer fuzz recursivo (si quieres)