Wfuzz
| Fiche express | |
|---|---|
| Type | Fuzzer / brute forcer web |
| Cibles | URL, paramètres GET/POST, cookies, en-têtes |
| Alternative à | Burp Intruder |
| GUI | WebSlayer |
| Voir aussi | Webscarab · Dirb |
Wfuzz est un fuzzer orienté web qui permet de brute forcer des URL. C'est une alternative à Burp Intruder. Il peut brute forcer : paramètres GET/POST, cookies, formulaires, répertoires, fichiers et en-têtes HTTP.
Fonctionnalités : récursion (répertoires non liés), brute force GET/POST, sortie HTML et couleur, encodage d'URL, gestion des cookies, multithreading, support des proxys, dictionnaires taillés pour des applications connues (WebLogic, iPlanet, Tomcat, Domino, Oracle 9i, Vignette, ColdFusion...).
wfuzz.py -v -z range,1-1000 http://www.target.example/index.php?id=FUZZ
Concepts
- payloads : la liste des données envoyées au serveur ;
- encoders : encodage du payload (URL, base64, unicode, md5, sha1, encodages multiples...) ;
- iterators : énumèrent les payloads (product, zip, chain) ;
- plugins : étendent les fonctionnalités ;
- printers : mise en forme des résultats (magictree, html...).
wfuzz.py -e payloads # afficher les payloads
wfuzz.py -e encodings # afficher les encoders
wfuzz.py -e iterators # afficher les iterators
Méthodes d'itération :
- product (défaut) : toutes les combinaisons des deux listes ;
- zip : associe les valeurs de même rang des deux listes ;
- chain : concatène les deux listes en une seule plus grande.
Usage
Le mot-clé FUZZ indique l'emplacement de la variable (FUZ2Z, FUZ3Z... pour les suivantes) :
# énumération de pages
wfuzz -c -z file,/usr/share/wfuzz/wordlist/general/common.txt http://site-cible.example/FUZZ
# brute force avec deux variables
wfuzz -c -z file,user.txt -z file,password.txt \
http://192.168.1.35/login.php?user=FUZZ&password=FUZ2Z
# baseline : compare chaque résultat à une valeur par défaut
wfuzz.py -c -z range,1-10 --hc=BBB http://www.site.example/FUZZ{something}
# plage d'hôtes contenant un répertoire donné
wfuzz.py -c -z file,hosts.txt -z list,admin-webmanager-test FUZZ/FUZ2Z
# scan à travers un proxy SOCKS4/5
wfuzz.py -x 192.168.1.2:8080 -c -z range,1-254 -z list,admin-webmanager \
http://192.168.1.FUZZ/FUZ2Z
Options courantes :
--hc 404 masquer les réponses 404
-c sortie en couleur
-R 2 récursivité sur deux niveaux
-f fichier de tests
-d données POST à tester
--html réponse au format HTML
-X scan de méthodes HTTP
Discrétion
Wfuzz n'est pas discret : sa signature d'agent (PyCURL) est affichée, et peut être bloquée côté Apache. Pour la contourner, forcer un User-Agent :
wfuzz -c -z file,rep_list.txt -H "User-Agent: Mozilla" http://192.168.1.35/FUZZ
GUI
- WebSlayer — http://sourceforge.net/projects/wfuzzfe/
Voir aussi
- Webscarab — repérage des formulaires à fuzzer
- Dirb — énumération de répertoires
- Modification d'URL · Injection sql — cas d'usage