
Fuzzer de caja negra de alto rendimiento para aplicaciones web con motor de payloads incorporado, verificación de solicitudes, manipulación, codificación y filtrado avanzado para detectar comportamientos ocultos y vulnerabilidades.
< / Ventajas | Características | Instalación | Uso | Comunidad >
Firefly es un fuzzer avanzado de caja negra y no solo una herramienta estándar de descubrimiento de activos. Firefly ofrece la ventaja de probar un objetivo con una gran cantidad de comprobaciones integradas para detectar comportamientos en el objetivo.
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
o
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
firefly -u 'http://example.com/?query=FUZZ'
Diferentes tipos de entrada de solicitud que se pueden utilizar
Básico
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
Solicitud con diferentes métodos y protocolos
firefly -u 'http://example.com/?query=FUZZ' -m GET,POST,PUT -p https,http,ws
echo 'http://example.com/?query=FUZZ' | firefly
firefly -r '
GET /?query=FUZZ HTTP/1.1
Host: example.com
User-Agent: FireFly'
Esto enviará el HTTP Raw y detectará automáticamente todos los parámetros GET y/o POST para fuzzear.
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
El verificador de solicitudes es la parte más importante. Esta característica permite a Firefly conocer el comportamiento principal del objetivo que está fuzzeando. Es importante priorizar la calidad sobre la cantidad. Más solicitudes de verificación conducirán a una mejor calidad a costa del rendimiento del hardware interno (dependiendo de su hardware).
firefly -u 'http://example.com/?query=FUZZ' -e
Las cargas útiles pueden ser altamente personalizadas y con una buena lista de palabras base es posible adaptar completamente la lista de palabras de cargas útiles dentro del propio Firefly.
Muestra el formato de todas las cargas útiles y finaliza
firefly -show-payload
Lista de todos los Tampers disponibles
firefly -list-tamper
Aplicar tamper a todas las cargas útiles con el tipo dado (se pueden usar más de uno separados por coma)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
Codificar en Hex y luego URL a todas las cargas útiles
firefly -u 'http://example.com/?query=FUZZ' -e hex,url
firefly -u 'http://example.com/?query=FUZZ' -pr '\([0-9]+=[0-9]+\) => (13=(37-24))'
Las cargas útiles:
' or (1=1)-- -y" or(20=20)or "Resultarán en:' or (13=(37-24))-- -y" or(13=(37-24))or "Donde=>(con espacios) indica "reemplazar por".
Opciones de filtro para filtrar/coincidir solicitudes que incluyan una regla determinada.
Filtrar respuesta para ignorar (filtrar) código de estado 302 y recuento de líneas 0
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
Filtrar respuestas para incluir (coincidir) regex, y código de estado 200
firefly -u 'http://example.com/?query=FUZZ' -mr '[Ee]rror (at|on) line \d' -mc 200
firefly -u 'http://example.com/?query=FUZZ' -mr 'MySQL' -mc 200
Opciones de rendimiento y retardos de tiempo para usar en el proceso de solicitud
Hilos / Concurrencia
firefly -u 'http://example.com/?query=FUZZ' -t 35
Retardo de tiempo en milisegundos (ms) por cada concurrencia
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
Lista de palabras que contiene las cargas útiles se puede agregar por separado o extraer de una carpeta determinada
Lista de palabras única con su tipo de ataque
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
Extraer todas las listas de palabras dentro de una carpeta. El tipo de ataque depende del sufijo <type>_wordlist.txt
firefly -u 'http://example.com/?query=FUZZ' -w wl/
Ejemplo
Nombres de listas de palabras dentro de la carpeta
wl:
- fuzz_wordlist.txt
- time_wordlist.txt
Se recomienda encarecidamente la salida en JSON. Esto se debe a que puede beneficiarse de la herramienta
jqpara navegar por los resultados y compararlos.
(Si Firefly está encadenado en pipeline con otras herramientas, el texto plano estándar puede ser una mejor opción.)
Formato de salida simple en texto plano
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
Formato de salida JSON (recomendado)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
Todos los miembros de la comunidad pueden sugerir nuevas características, mejoras y/o agregar nuevas cargas útiles a Firefly; solo haga una solicitud de extracción o agregue un comentario con sus sugerencias.