15 KiB
Herramienta Web - WFuzz
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
-
Descubre The PEASS Family, nuestra colección exclusiva de NFTs
-
Obtén la oficial PEASS & HackTricks swag
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Una herramienta para FUZZear aplicaciones web en cualquier lugar.
Wfuzz ha sido creada para facilitar la tarea en las evaluaciones de aplicaciones web y se basa en un concepto simple: reemplaza cualquier referencia a la palabra clave FUZZ por el valor de una carga útil dada.
Instalación
Instalado en Kali
Github: https://github.com/xmendez/wfuzz
pip install wfuzz
Opciones de filtrado
--hs/ss "regex" #Hide/Show
#Simple example, match a string: "Invalid username"
#Regex example: "Invalid *"
--hc/sc CODE #Hide/Show by code in response
--hl/sl NUM #Hide/Show by number of lines in response
--hw/sw NUM #Hide/Show by number of words in response
--hh/sh NUM #Hide/Show by number of chars in response
--hc/sc NUM #Hide/Show by response code
Opciones de salida
wfuzz -e printers #Prints the available output formats
-f /tmp/output,csv #Saves the output in that location in csv format
Opciones de codificadores
URL Encoding
Codificación de URL
This is the most common encoding used in web applications. It replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits. For example, the space character is replaced with "%20".
Esta es la codificación más común utilizada en aplicaciones web. Reemplaza los caracteres ASCII inseguros con un "%" seguido de dos dígitos hexadecimales. Por ejemplo, el espacio se reemplaza con "%20".
HTML Encoding
Codificación HTML
This encoding replaces unsafe characters with their corresponding HTML entities. For example, the less-than sign "<" is replaced with "<".
Esta codificación reemplaza los caracteres inseguros con sus entidades HTML correspondientes. Por ejemplo, el signo menor que "<" se reemplaza con "<".
Base64 Encoding
Codificación Base64
This encoding converts binary data into a string of ASCII characters. It is commonly used to transmit data over protocols that can only handle ASCII characters. It is not a form of encryption and can be easily decoded.
Esta codificación convierte datos binarios en una cadena de caracteres ASCII. Se utiliza comúnmente para transmitir datos sobre protocolos que solo pueden manejar caracteres ASCII. No es una forma de cifrado y puede ser fácilmente decodificada.
Hex Encoding
Codificación hexadecimal
This encoding converts binary data into a string of hexadecimal digits. It is commonly used in computing and networking to represent binary data in a human-readable format.
Esta codificación convierte datos binarios en una cadena de dígitos hexadecimales. Se utiliza comúnmente en informática y redes para representar datos binarios en un formato legible por humanos.
wfuzz -e encoders #Prints the available encoders
#Examples: urlencode, md5, base64, hexlify, uri_hex, doble urlencode
Para utilizar un codificador, debes indicarlo en la opción "-w" o "-z".
Ejemplos:
-z file,/path/to/file,md5 #Will use a list inside the file, and will transform each value into its md5 hash before sending it
-w /path/to/file,base64 #Will use a list, and transform to base64
-z list,each-element-here,hexlify #Inline list and to hex before sending values
Hoja de trucos
Fuerza bruta en formularios de inicio de sesión
POST, lista única, filtro de cadena (ocultar)
wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by line
POST, 2 listas, código de filtro (mostrar)
wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by code
GET, 2 listas, filtro de cadena (show), proxy, cookies
En esta sección, se utilizará la herramienta wfuzz
para realizar una solicitud GET a una URL y filtrar la respuesta utilizando una cadena específica. También se utilizarán dos listas para realizar la solicitud y se configurará un proxy y cookies para la solicitud.
El siguiente comando muestra cómo se puede utilizar wfuzz
para realizar una solicitud GET a una URL y filtrar la respuesta utilizando la cadena "show":
wfuzz -c -z file,/path/to/wordlist.txt -z file,/path/to/second_wordlist.txt --hs="show" -p 127.0.0.1:8080 --cookies "cookie1=value1; cookie2=value2" http://example.com/FUZZ
En este comando, -c
indica que se deben mostrar los resultados de la solicitud, -z file
indica que se utilizarán dos listas para realizar la solicitud, --hs="show"
indica que se filtrará la respuesta utilizando la cadena "show", -p 127.0.0.1:8080
indica que se utilizará un proxy en la dirección IP y puerto especificados, y --cookies "cookie1=value1; cookie2=value2"
indica que se utilizarán cookies en la solicitud.
La URL se especifica como http://example.com/FUZZ
, donde FUZZ
es el marcador de posición que se reemplazará con los valores de las listas especificadas.
Este comando es útil para encontrar información específica en la respuesta de una solicitud GET y para configurar un proxy y cookies para la solicitud.
wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHPSESSIONID=1234567890abcdef;customcookie=hey" "http://example.com/index.php?username=FUZZ&password=FUZ2Z&action=sign+in"
Fuerza bruta de directorios/ Fuerza bruta RESTful
Lista de palabras clave de parámetros de Arjun
wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ
Fuerza Bruta en Parámetros de Ruta
wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'
Autenticación de cabecera
Básica, 2 listas, cadena de filtro (show), proxy
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --basic FUZZ:FUZ2Z "http://example.com/index.php"
NTLM, 2 listas, cadena de filtro (show), proxy
En algunos casos, es posible que necesitemos usar NTLM para autenticarnos en el objetivo. En este caso, podemos usar dos listas de palabras diferentes para intentar autenticarnos con diferentes usuarios y contraseñas. Podemos hacer esto usando la opción -w
seguida del nombre del archivo que contiene la lista de palabras para usuarios y la opción -W
seguida del nombre del archivo que contiene la lista de palabras para contraseñas.
Además, podemos usar la opción --filter
o -f
seguida de una cadena de filtro para mostrar solo las respuestas que contienen la cadena de filtro. Esto puede ser útil para reducir el ruido en la salida y centrarse en las respuestas relevantes.
Finalmente, si estamos detrás de un proxy, podemos usar la opción --proxy
seguida de la dirección del proxy para enrutar todas las solicitudes a través del proxy.
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --ntlm 'domain\FUZZ:FUZ2Z' "http://example.com/index.php"
Fuerza bruta de Cookie/Header (vhost brute)
Cookie, código de filtro (show), proxy
wfuzz -c -w users.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "Cookie:id=1312321&user=FUZZ" "http://example.com/index.php"
User-Agent, código de filtro (ocultar), proxy
El User-Agent es una cadena de texto que identifica al navegador o aplicación que se está utilizando para realizar una petición HTTP. En algunos casos, el servidor puede filtrar las peticiones en función del User-Agent, por lo que es importante configurarlo correctamente para evitar ser bloqueado.
El código de filtro se utiliza para ocultar ciertos resultados de la respuesta del servidor. Por ejemplo, si se está buscando una vulnerabilidad en un formulario de login, se puede utilizar un código de filtro para ocultar los resultados que indican que el login ha sido exitoso.
El uso de un proxy puede ayudar a ocultar la dirección IP del atacante y evitar ser detectado. Además, algunos proxies pueden modificar el User-Agent de las peticiones para evitar ser bloqueados por el servidor.
wfuzz -c -w user-agents.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "User-Agent: FUZZ" "http://example.com/index.php"
Anfitrión
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-
top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u
http://example.com -t 100
Verbos HTTP (métodos) por fuerza bruta
Usando archivo
wfuzz -c -w methods.txt -p 127.0.0.1:8080:HTTP --sc 200 -X FUZZ "http://example.com/index.php"
Usando lista en línea
Puede usar una lista en línea para especificar valores para un parámetro. Por ejemplo, si desea probar diferentes valores para el parámetro id
, puede usar una lista en línea como esta:
wfuzz -c -z list,1-10 --hs "Invalid id" http://example.com?id=FUZZ
En este ejemplo, list,1-10
especifica una lista en línea que contiene los valores 1
a 10
. El parámetro --hs
se utiliza para especificar una cadena de texto que indica que el valor del parámetro id
es inválido. FUZZ
es una palabra clave especial que se utiliza para indicar dónde se insertará cada valor de la lista en línea.
$ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/
Fuerza bruta de directorios y archivos
WFuzz
WFuzz es una herramienta de fuerza bruta que se utiliza para encontrar vulnerabilidades en aplicaciones web. Es capaz de buscar directorios y archivos ocultos, así como también puede realizar ataques de inyección de parámetros y de fuerza bruta de contraseñas.
Para buscar directorios y archivos ocultos, se puede utilizar la opción -w
para especificar una lista de palabras que se utilizarán para realizar la búsqueda. Por ejemplo:
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://example.com/FUZZ
En este ejemplo, WFuzz utilizará la lista de palabras directory-list-2.3-medium.txt
para buscar directorios y archivos ocultos en http://example.com/
. La opción -c
indica que WFuzz debe mostrar sólo los códigos de respuesta HTTP, mientras que FUZZ
es la cadena que se sustituirá por cada palabra de la lista.
También se pueden utilizar otras opciones para personalizar la búsqueda, como -t
para especificar el número de hilos que se utilizarán, -p
para especificar una lista de parámetros que se inyectarán en la URL, y -H
para especificar encabezados HTTP personalizados.
Dirb
Dirb es otra herramienta de fuerza bruta que se utiliza para buscar directorios y archivos ocultos en aplicaciones web. Es capaz de buscar en una lista de palabras predefinida o en una lista personalizada, y puede mostrar los códigos de respuesta HTTP y los tamaños de los archivos encontrados.
Para buscar directorios y archivos ocultos con Dirb, se puede utilizar el siguiente comando:
dirb http://example.com /usr/share/wordlists/dirb/common.txt
En este ejemplo, Dirb utilizará la lista de palabras common.txt
para buscar directorios y archivos ocultos en http://example.com/
. Dirb mostrará los códigos de respuesta HTTP y los tamaños de los archivos encontrados.
También se pueden utilizar otras opciones para personalizar la búsqueda, como -r
para seguir las redirecciones, -o
para guardar los resultados en un archivo y -x
para especificar una extensión de archivo específica que se buscará.
#Filter by whitelisting codes
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --sc 200,202,204,301,302,307,403 http://example.com/uploads/FUZZ
Herramienta para evadir Webs
https://github.com/carlospolop/fuzzhttpbypass
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Revisa los PLANES DE SUSCRIPCIÓN!
-
Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
-
Obtén el swag oficial de PEASS y HackTricks
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.