Wfuzz

Diciembre 7, 2023

La herramienta Wfuzz es una herramienta de penetración y evaluación de seguridad. A través de esta herramienta somos capaces de realizar ataques de fuerza bruta contra aplicaciones web.

Con Wfuzz somos capaces de descubrir información oculta como directorios, archivos, parámetros y demás al realizar este tipo de ataques automatizados.

El objetivo principal de Wfuzz es realizar el envío de peticiones HTTP a el servidor objetivo para analizar sus respuestas mediante las cuales seremos capaces de detectar posibles puntos débiles en la aplicación.
Cabe destacar 4 características principales en esta herramienta:

  1. Fuerza Bruta: Permite realizar ataques de fuerza bruta contra varios elementos, como nombres de usuario, contraseñas y otros parámetros.
  2. Exploración de Directorios y Archivos: Puede utilizarse para descubrir directorios y archivos ocultos en una aplicación web.
  3. Manipulación de Peticiones: Facilita la manipulación de peticiones HTTP, permitiendo la modificación de encabezados, cuerpos de solicitud y parámetros.
  4. Generación de Palabras Clave: Proporciona funciones para generar listas de palabras clave que pueden ser utilizadas en ataques de fuerza bruta.

Ejemplos Wfuzz

  1. Fuerza Bruta en Formularios de Autenticación:
wfuzz -c -z file,wordlist.txt --hc 401 http://example.com/login?username=FUZZ&password=test

En este primer ejemplo se muestra como realizar un ataque de fuerza bruta contra un formulario de inicio de sesión en la url que le proporcionamos. Variará el parámetro USERNAME utilizando palabras que se encuentran concretamente en el archivo wordlist.txt

  1. Descubrimiento de Directorios y Archivos:
wfuzz -c --hc 404 http://example.com/FUZZ

Aquí, Wfuzz trata de encontrar directorios y archivos ocultos en la URL proporcionada.
La cadena FUZZ se sustituirá por palabras clave del archivo que trae por defecto analizando las respuestas del servidor.

  1. Exploración de Parámetros:
wfuzz -c --hc 200 -w params.txt http://example.com/index.php?FUZZ=test

En este caso, Wfuzz realizará una prueba de fuerza bruta en los parámetros de una URL, utilizando los valores en el archivo params.txt para sustituir la cadena FUZZ. El objetivo es identificar parámetros válidos o sensibles.

Estos son ejemplos básicos y debes adaptar los comandos según tus necesidades y el contexto de la aplicación que estás probando.

Wfuzz es una herramienta flexible y potente para realizar pruebas de seguridad en aplicaciones web. Aquí hay una breve descripción de algunos de los parámetros y opciones más comunes que puedes utilizar con wfuzz:

Sintaxis básica Wfuzz:

wfuzz [opciones] URL

Opciones y parámetros comunes:

  1. -c o --hw: Muestra la línea de comandos de la solicitud y respuesta para cada intento.
   wfuzz -c -w wordlist.txt http://example.com/FUZZ
  1. -z o --zlist: Especifica el tipo de lista de palabras a utilizar (por ejemplo, file para cargar desde un archivo).
   wfuzz -z file,wordlist.txt http://example.com/FUZZ
  1. --hc o --hh: Filtra las respuestas basándose en códigos de estado (por ejemplo, --hc 404 para ignorar respuestas 404).
   wfuzz --hc 200,301,302 http://example.com/FUZZ
  1. -w o --wlist: Especifica una lista de palabras para sustituir la cadena FUZZ en la URL.
   wfuzz -w wordlist.txt http://example.com/FUZZ
  1. --hs o --hl: Filtra las respuestas basándose en el contenido de la página (por ejemplo, --hs "Error" para filtrar respuestas que contienen la palabra «Error»).
   wfuzz --hs "Invalid" http://example.com/FUZZ
  1. -t o --script: Ejecuta un script de Python después de cada intento (útil para personalizar la lógica de prueba).
   wfuzz -t custom_script.py http://example.com/FUZZ
  1. -o o --output: Guarda la salida en un archivo.
   wfuzz -o output.txt http://example.com/FUZZ
  1. -H o --hh: Especifica encabezados personalizados para incluir en la solicitud.
   wfuzz -H "Authorization: Bearer Token123" http://example.com/FUZZ
  1. -d o --data: Envía datos en el cuerpo de la solicitud (útil para peticiones POST).
   wfuzz -d "username=admin&password=FUZZ" http://example.com/login

Estos son solo algunos ejemplos y opciones comunes. Puedes explorar más opciones y personalizaciones consultando la documentación oficial de Wfuzz o utilizando el comando wfuzz --help para obtener una lista completa de opciones disponibles.

El uso de esta herramienta solo debe ser utilizada para pruebas de seguridad en sistemas en los cuales tenemos permiso explícito para evaluar. Aquel que realice pruebas con esta herramienta en sin autorización estará quebrantando la ley y tendrá como resultado consecuencias legales.


Dejo por aquí el pasado artículo sobre la herramienta Wireshark.

«Wireshark es de código abierto mediante la cual podemos capturar y analizar en tiempo real los datos que se transmiten por una interfaz.»

Enlace: Wireshark.