Fuzzing de Valores de Parámetros con ffuf
Después de descubrir un parámetro válido, el siguiente paso es encontrar el valor correcto que permita revelar la flag o contenido protegido.
Este proceso se conoce como Value Fuzzing o “difusión de valores”.
🧠 ¿Por qué fuzzear valores?
Aunque un parámetro sea válido, el servidor podría requerir un valor específico (ID, token, KEY…) para mostrar la flag.
Fuzzear valores nos permite probar miles de posibles respuestas de forma automatizada.
🧰 Creando una Wordlist Personalizada
A diferencia de los parámetros, los valores pueden ser:
-
IDs secuenciales
-
Tokens
-
Códigos internos
-
Usernames
-
Fechas
-
Hashes parciales
-
Valores completamente personalizados
SecLists no siempre tiene una lista adecuada, por lo que debemos generar la nuestra.
🔢 Creación de lista de IDs (1–1000)
Como el parámetro id parece aceptar números, generamos una lista simple de 1 a 1000:
for i in $(seq 1 1000); do echo $i >> ids.txt; done
Comprobamos que se creó correctamente:

🚀 Fuzzing de valores con ffuf
Ahora que tenemos nuestra wordlist, fuzzear el valor del parámetro es sencillo:
ffuf -w ids.txt:FUZZ \
-u http://admin.academy.htb:PORT/admin/admin.php \
-X POST \
-d 'id=FUZZ' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-fs xxx
Ejecute antes sin xx para ver el tamaño y luego poners la cantidadad
Explicación rápida:
-
id=FUZZ→ fuzzeamos el VALOR -
-X POST→ el endpoint requiere una petición POST -
-fs xxx→ filtramos el tamaño normal para detectar respuestas distintas -
ids.txt→ nuestra wordlist personalizada
🎯 Resultado
El escaneo devuelve un hit inmediato:

Lo cual significa:
Hemos encontrado el valor correcto para el parámetro
id.
🏁 Extrayendo la flag con curl
Ahora solo queda enviar una petición manual con el valor encontrado:
curl -X POST \
-d "id=73" \
http://admin.academy.htb:PORT/admin/admin.php
La respuesta mostrará la flag 🎉