Saltar al contenido
Lectura9 minPreview

Qué es el fuzzing web y cómo funciona ffuf

Bienvenida

Bienvenido a ffuf: fuzzing y descubrimiento de contenido web. Casi toda aplicación web esconde rutas que no aparecen en ningún enlace: un panel /admin, una copia de seguridad olvidada, un /api sin documentar. Esta píldora es para quien empieza en pentesting web, en un equipo de seguridad o en bug bounty y quiere encontrar ese contenido oculto de forma ordenada.

No necesita conocimientos previos más allá de saber usar la terminal y entender qué es una URL. Al terminar sabrá qué es el fuzzing web, instalar ffuf, descubrir directorios y archivos, filtrar el ruido y fuzzear parámetros y subdominios. Son tres lecciones cortas, un laboratorio que usted monta en su propia máquina y un quiz de cuatro preguntas: unos 45 minutos. Todo se practica contra un sitio que levanta usted mismo.

Qué es el fuzzing web

El fuzzing nació en pruebas de software: enviarle a un programa montones de entradas distintas para ver cuáles rompen algo o revelan comportamientos inesperados. En seguridad web lo adaptamos para descubrir: en vez de adivinar a mano una ruta a la vez, le damos a la herramienta una lista de miles de nombres probables y ella prueba todos, muy rápido, anotando cómo responde el servidor a cada uno.

La idea es sencilla. Si pide http://sitio.example/admin y el servidor responde 200 OK, esa ruta existe. Si responde 404 Not Found, no. Repetir eso con una lista de nombres habituales (admin, login, backup, config, uploads) saca a la luz lo que no está enlazado en ninguna página. A eso se le llama descubrimiento de contenido.

El mismo truco sirve para más cosas: nombres de parámetros (?id=, ?debug=), subdominios (api.sitio.example, dev.sitio.example) o valores. Cambia dónde ponemos la lista; el motor es el mismo.

Qué es ffuf y la palabra clave FUZZ

ffuf significa Fuzz Faster U Fool y es un fuzzer web escrito en Go, gratuito y de código abierto. Su gracia es la velocidad y una idea muy simple: usted escribe la palabra FUZZ en el lugar de la URL que quiere probar, y ffuf la reemplaza por cada línea de la lista de palabras.

ffuf -u http://sitio.example/FUZZ -w lista.txt

Ahí FUZZ está en la ruta, así que ffuf prueba http://sitio.example/admin, http://sitio.example/login, y así con las miles de palabras del archivo lista.txt. Si mueve FUZZ a http://sitio.example/?FUZZ=1, estará probando nombres de parámetros. Ese marcador es todo el secreto: ffuf no sabe qué está buscando, solo sustituye FUZZ y le reporta cómo respondió el servidor.

Instalación

En Kali y Parrot ya viene instalado. En otras distribuciones de Linux, la vía más limpia es el gestor de paquetes de Go o la descarga del binario oficial.

# Debian y Ubuntu
sudo apt install ffuf
 
# con Go instalado, la última versión
go install github.com/ffuf/ffuf/v2@latest
 
# comprobar
ffuf -V
ffuf version: v2.1.0

En Windows descargue el binario desde el repositorio oficial del proyecto en GitHub y ejecútelo desde PowerShell. Para las listas de palabras instalaremos SecLists en la próxima lección.