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?

Observación

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.


Regla útil

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

{9944E4C9-9CDB-41C2-98EE-B961432E9D44}.png


📊 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/


Confirmación

La página se carga, pero está vacía → es un sitio diferente al VHost principal.
{85191218-657B-43A9-84A9-8DA018D1F28A} 1.png
También:

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)