
Hochleistungs-Blackbox-Fuzzer für Webanwendungen mit integrierter Payload-Engine, Anfragenüberprüfung, Manipulation, Kodierung und erweiterter Filterung zur Erkennung versteckter Verhaltensweisen und Schwachstellen.
&/ Vorteile | Funktionen | Installation | Verwendung | Community >
Firefly ist ein erweiterter Black-Box-Fuzzer und nicht nur ein standardmäßiges Asset-Discovery-Tool. Firefly bietet den Vorteil, ein Ziel mit einer großen Anzahl integrierter Prüfungen zu testen, um Verhaltensweisen im Ziel zu erkennen.
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
oder
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
firefly -u 'http://example.com/?query=FUZZ'
Verschiedene Arten von Anfrageeingaben, die verwendet werden können
Basis
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
Anfrage mit verschiedenen Methoden und Protokollen
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'
Dies sendet das HTTP Raw und erkennt automatisch alle GET- und/oder POST-Parameter zum Fuzzen.
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
Der Anfrageverifizierer ist der wichtigste Teil. Diese Funktion lässt Firefly das Kernverhalten des zu fuzzenden Ziels kennen. Es ist wichtig, Qualität vor Quantität zu stellen. Mehr Verifizierungsanfragen führen zu besserer Qualität, jedoch auf Kosten der internen Hardware-Leistung (abhängig von Ihrer Hardware)
firefly -u 'http://example.com/?query=FUZZ' -e
Payloads können hochgradig angepasst werden, und mit einer guten Kern-Wortliste ist es möglich, die Payload-Wortliste innerhalb von Firefly selbst vollständig anzupassen.
Zeigt das Format aller Payloads an und beendet
firefly -show-payload
Liste aller verfügbaren Tampers
firefly -list-tamper
Tamper alle Payloads mit dem angegebenen Typ (Mehrere können durch Komma getrennt verwendet werden)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
Hex dann URL-kodiert alle Payloads
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))'
Die Payloads:
' or (1=1)-- -und" or(20=20)or "Werden ergeben in:' or (13=(37-24))-- -und" or(13=(37-24))or "Wo=>(mit Leerzeichen) das "Ersetze durch" angibt.
Filteroptionen zum Filtern/Match von Anfragen, die eine bestimmte Regel enthalten.
Filterantworten, um Statuscode 302 und Zeilenanzahl 0 zu ignorieren (filtern)
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
Filterantworten, um Regex und Statuscode 200 einzuschließen (matchen)
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
Leistung und Zeitverzögerungen für den Anfrageprozess
Threads / Gleichzeitigkeit
firefly -u 'http://example.com/?query=FUZZ' -t 35
Zeitverzögerung in Millisekunden (ms) für jede Gleichzeitigkeit
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
Eine Wortliste, die die Payloads enthält, kann separat hinzugefügt oder aus einem bestimmten Ordner extrahiert werden
Einzelne Wortliste mit ihrem Angriffstyp
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
Extrahiere alle Wortlisten aus einem Ordner. Der Angriffstyp hängt vom Suffix <Typ>_wordlist.txt ab
firefly -u 'http://example.com/?query=FUZZ' -w wl/
Beispiel
Wortlistennamen im Ordner
wl:
- fuzz_wordlist.txt
- time_wordlist.txt
JSON-Ausgabe wird stark empfohlen. Denn Sie können mit dem
jq-Tool durch das Ergebnis navigieren und es vergleichen.
(Wenn Firefly mit anderen Tools in einer Pipeline verkettet ist, ist einfacher Klartext möglicherweise die bessere Wahl.)
Einfaches Klartext-Ausgabeformat
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
JSON-Ausgabeformat (empfohlen)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
Jeder in der Community darf neue Funktionen, Verbesserungen vorschlagen und/oder neue Payloads zu Firefly hinzufügen – einfach einen Pull Request erstellen oder einen Kommentar mit Ihren Vorschlägen hinzufügen!