
Fuzzer black-box haute performance pour applications web avec moteur de payload intégré, vérification des requêtes, altération, encodage et filtrage avancé pour détecter les comportements cachés et les vulnérabilités.
< Avantages | Fonctionnalités | Installation | Utilisation | Communauté >
Firefly est un fuzzer avancé en boîte noire, bien plus qu’un simple outil de découverte d’actifs. Firefly permet de tester une cible avec un grand nombre de vérifications intégrées pour détecter les comportements de la cible.
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
ou
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
firefly -u 'http://example.com/?query=FUZZ'
Différents types d’entrée de requête pouvant être utilisés
Basique
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
Requête avec différentes méthodes et protocoles
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'
Cela enverra la requête HTTP Raw et détectera automatiquement tous les paramètres GET et/ou POST à tester.
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
Le vérificateur de requête est la partie la plus importante. Cette fonctionnalité permet à Firefly de connaître le comportement principal de la cible que vous testez. Il est important de privilégier la qualité à la quantité. Plus de requêtes de vérification amélioreront la qualité au détriment des performances matérielles internes (en fonction de votre matériel)
firefly -u 'http://example.com/?query=FUZZ' -e
Les charges utiles peuvent être hautement personnalisées et, avec une bonne wordlist de base, il est possible d’adapter entièrement la liste de charges utiles dans Firefly lui-même.
Affiche le format de toutes les charges utiles puis quitte
firefly -show-payload
Liste de toutes les falsifications disponibles
firefly -list-tamper
Falsifie toutes les charges utiles avec le type donné (plusieurs peuvent être utilisés séparés par des virgules)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
Encodage hexadécimal puis URL de toutes les charges utiles
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))'
Les charges utiles :
' or (1=1)-- -et" or(20=20)or "Donneront :' or (13=(37-24))-- -et" or(13=(37-24))or "Où=>(avec espaces) indique le « remplacer par ».
Options de filtrage pour filtrer/correspondre aux requêtes qui incluent une règle donnée.
Filtrer les réponses pour ignorer (filtrer) le code d’état 302 et le nombre de lignes 0
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
Filtrer les réponses pour inclure (correspondre) à l’expression régulière et au code d’état 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
Performances et délais à utiliser pour le processus de requête
Threads / Concurrence
firefly -u 'http://example.com/?query=FUZZ' -t 35
Délai en millisecondes (ms) pour chaque concurrence
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
Wordlist contenant les charges utiles peut être ajoutée séparément ou extraite d’un dossier donné
Wordlist unique avec son type d’attaque
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
Extraire toutes les wordlists d’un dossier. Le type d’attaque dépend du suffixe <type>_wordlist.txt
firefly -u 'http://example.com/?query=FUZZ' -w wl/
Exemple
Noms des wordlists dans le dossier
wl:
- fuzz_wordlist.txt
- time_wordlist.txt
Le format JSON est fortement recommandé. Cela permet d’utiliser l’outil
jqpour naviguer dans les résultats et les comparer.
(Si Firefly est enchaîné dans un pipeline avec d’autres outils, le texte brut standard peut être un meilleur choix.)
Format de sortie simple en texte brut
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
Format de sortie JSON (recommandé)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
Tous les membres de la communauté sont invités à suggérer de nouvelles fonctionnalités, des améliorations et/ou à ajouter de nouvelles charges utiles à Firefly. Faites simplement une pull request ou ajoutez un commentaire avec vos suggestions !