
Fuzzer black-box ad alte prestazioni per applicazioni web con motore di payload integrato, verifica delle richieste, manipolazione, codifica e filtraggio avanzato per rilevare comportamenti e vulnerabilità nascosti.
</ Vantaggi | Caratteristiche | Installazione | Utilizzo | Community >
Firefly è un avanzato fuzzer black-box e non solo un semplice strumento di scoperta di asset. Firefly offre il vantaggio di testare un target con un gran numero di controlli integrati per rilevare comportamenti nel target.
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
oppure
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
firefly -u 'http://example.com/?query=FUZZ'
Diversi tipi di input di richiesta che possono essere utilizzati
Base
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
Richiesta con diversi metodi e protocolli
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'
Questo invierà l'HTTP Raw e rileverà automaticamente tutti i parametri GET e/o POST da fuzzare.
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
Il verificatore di richieste è la parte più importante. Questa funzionalità fa sì che Firefly conosca il comportamento principale del target che stai fuzzando. È importante puntare sulla qualità piuttosto che sulla quantità. Più richieste di verifica porteranno a una migliore qualità a scapito delle prestazioni hardware interne (a seconda del tuo hardware)
firefly -u 'http://example.com/?query=FUZZ' -e
I payload possono essere altamente personalizzati e con una buona wordlist di base è possibile adattare completamente la wordlist dei payload all'interno di Firefly stesso.
Mostra il formato di tutti i payload ed esce
firefly -show-payload
Elenco di tutti i tampers disponibili
firefly -list-tamper
Applica il tamper a tutti i payload con il tipo specificato (È possibile usarne più di uno separati da virgola)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
Codifica in hex, poi URL, tutti i payload
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))'
I Payload:
' or (1=1)-- -e" or(20=20)or "Risulteranno in:' or (13=(37-24))-- -e" or(13=(37-24))or "Dove=>(con spazi) indica "sostituisci con".
Opzioni di filtro per filtrare/abbinare richieste che includono una regola specificata.
Filtra le risposte per ignorare (filtra) codice stato 302 e numero di righe 0
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
Filtra le risposte per includere (abbinare) regex e codice stato 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
Prestazioni e ritardi temporali da utilizzare per il processo di richiesta
Thread / Concorrenza
firefly -u 'http://example.com/?query=FUZZ' -t 35
Ritardo temporale in millisecondi (ms) per ogni concorrenza
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
Wordlist che contengono i payload possono essere aggiunte separatamente o estratte da una cartella specifica
Singola wordlist con il suo tipo di attacco
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
Estrai tutte le wordlist all'interno di una cartella. Il tipo di attacco dipende dal suffisso <tipo>_wordlist.txt
firefly -u 'http://example.com/?query=FUZZ' -w wl/
Esempio
Nomi delle wordlist all'interno della cartella
wl:
- fuzz_wordlist.txt
- time_wordlist.txt
L'output JSON è fortemente consigliato. Questo perché puoi beneficiare dello strumento
jqper navigare tra i risultati e confrontarli.
(Se Firefly è collegato in pipeline con altri strumenti, il plaintext standard potrebbe essere una scelta migliore.)
Formato di output semplice in plaintext
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
Formato di output JSON (consigliato)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
Tutti nella community sono autorizzati a suggerire nuove funzionalità, miglioramenti e/o aggiungere nuovi payload a Firefly: basta fare una pull request o aggiungere un commento con i tuoi suggerimenti!