Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Offensive › Tools
March 22, 2026

ffuf et Gobuster

Outils de découverte de ressources web par force brute : répertoires, fichiers, sous-domaines, paramètres.

ffuf (Fuzz Faster U Fool)§

ffuf est plus flexible et performant que Gobuster. Le mot-clé FUZZ marque l’emplacement d’injection.

Découverte de répertoires et fichiers§

# Répertoires
ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

# Fichiers avec extensions
ffuf -u https://target.com/FUZZ -w wordlist.txt -e .php,.html,.txt,.bak,.zip

# Ignorer les codes HTTP non pertinents
ffuf -u https://target.com/FUZZ -w wordlist.txt -fc 404,403

# Filtrer par taille de réponse
ffuf -u https://target.com/FUZZ -w wordlist.txt -fs 1234  # Ignorer les réponses de 1234 octets

# Filtrer par nombre de mots ou de lignes
ffuf -u https://target.com/FUZZ -w wordlist.txt -fw 12    # Ignorer les 12 mots
ffuf -u https://target.com/FUZZ -w wordlist.txt -fl 5     # Ignorer les 5 lignes

# Afficher uniquement les codes spécifiques
ffuf -u https://target.com/FUZZ -w wordlist.txt -mc 200,301,302,403

Sous-domaines (vhost fuzzing)§

# Fuzzing de sous-domaines via l'en-tête Host
ffuf -u https://target.com/ -H "Host: FUZZ.target.com" \
    -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
    -fs 1234  # Filtrer la réponse par défaut (taille de la page principale)

# DNS bruteforce (nécessite la résolution DNS)
ffuf -u https://FUZZ.target.com/ \
    -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
    -mc 200,301

Fuzzing de paramètres et valeurs§

# Découverte de paramètres GET
ffuf -u "https://target.com/page?FUZZ=value" \
    -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
    -fs <taille_réponse_normale>

# Fuzzing de valeurs d'un paramètre connu
ffuf -u "https://target.com/api/user?id=FUZZ" \
    -w /usr/share/seclists/Fuzzing/Integers/Integers.txt \
    -mc 200

# Fuzzing POST (formulaire de connexion)
ffuf -u https://target.com/login \
    -X POST \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "username=admin&password=FUZZ" \
    -w /usr/share/seclists/Passwords/Leaked-Databases/rockyou-50.txt \
    -fc 200  # Le succès répond peut-être différemment

# Fuzzing JSON
ffuf -u https://target.com/api/login \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"username":"admin","password":"FUZZ"}' \
    -w passwords.txt \
    -fs <taille_échec>

Fuzzing multi-positions§

# Deux positions simultanées (FUZZ et W2) — Pitchfork
ffuf -u "https://target.com/FUZZ/W2" \
    -w wordlist1.txt:FUZZ \
    -w wordlist2.txt:W2 \
    -mode pitchfork

# Cluster bomb (produit cartésien)
ffuf -u "https://target.com/api?user=FUZZ&role=W2" \
    -w users.txt:FUZZ \
    -w roles.txt:W2 \
    -mode clusterbomb

Options avancées§

# Authentification HTTP
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9..."

# Cookie de session
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -H "Cookie: session=abc123"

# Avec un proxy (Burp Suite)
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -x http://127.0.0.1:8080

# Délai entre requêtes (eviter le rate limiting)
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -p 0.1  # 100ms entre chaque requête

# Threads (concurrence)
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -t 50   # 50 threads (défaut : 40)

# Sortie
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -o results.json -of json  # JSON, CSV, HTML, MD

# Recursif — descendre dans les sous-répertoires trouvés
ffuf -u https://target.com/FUZZ -w wordlist.txt \
    -recursion -recursion-depth 2

Gobuster§

Outil plus simple, spécialisé dans trois modes : dir, dns, vhost.

Mode dir — répertoires et fichiers§

# Basique
gobuster dir -u https://target.com -w /usr/share/seclists/Discovery/Web-Content/common.txt

# Avec extensions
gobuster dir -u https://target.com \
    -w /usr/share/seclists/Discovery/Web-Content/common.txt \
    -x php,html,txt,bak,zip

# Ignorer les codes de statut
gobuster dir -u https://target.com -w wordlist.txt \
    -b 404,403,500  # Blacklist

# Avec authentification
gobuster dir -u https://target.com -w wordlist.txt \
    -U admin -P password  # Basic auth
gobuster dir -u https://target.com -w wordlist.txt \
    -H "Authorization: Bearer TOKEN"
gobuster dir -u https://target.com -w wordlist.txt \
    -c "session=abc123"   # Cookie

# Via proxy Burp
gobuster dir -u https://target.com -w wordlist.txt \
    --proxy http://127.0.0.1:8080

# Afficher la longueur des réponses
gobuster dir -u https://target.com -w wordlist.txt -l

# Threads
gobuster dir -u https://target.com -w wordlist.txt -t 50

Mode dns — sous-domaines§

# Enumération de sous-domaines
gobuster dns -d target.com \
    -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# Résoudre les IPs
gobuster dns -d target.com -w wordlist.txt -i

# Résolveur DNS spécifique
gobuster dns -d target.com -w wordlist.txt -r 8.8.8.8

Mode vhost — virtual hosts§

gobuster vhost -u https://target.com \
    -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
    --append-domain  # Ajoute .target.com automatiquement

Wordlists recommandées§

# SecLists — la référence (apt install seclists)
/usr/share/seclists/Discovery/Web-Content/

  common.txt                        # 4 800 entrées — rapide
  directory-list-2.3-medium.txt     # 220 000 entrées — équilibré
  directory-list-2.3-big.txt        # 1 270 000 entrées — exhaustif
  raft-large-directories.txt        # Répertoires courants
  raft-large-files.txt              # Fichiers courants
  burp-parameter-names.txt          # Noms de paramètres
  api/api-endpoints.txt             # Endpoints API REST

/usr/share/seclists/Discovery/DNS/
  subdomains-top1million-5000.txt   # Top sous-domaines (rapide)
  subdomains-top1million-20000.txt  # Plus exhaustif

/usr/share/seclists/Passwords/
  Leaked-Databases/rockyou-50.txt   # Top 50 000 mots de passe
  Common-Credentials/top-passwords-shortlist.txt

# Générer des wordlists personnalisées
cewl https://target.com -d 3 -m 5 -w wordlist.txt  # À partir du site lui-même

Comparaison§

CritèreffufGobuster
VitesseTrès rapideRapide
FlexibilitéÉlevée (FUZZ partout)Modérée (modes dédiés)
Multi-positionsOui (FUZZ, W2, W3…)Non
FiltresNombreux (code, taille, mots, lignes, temps)Basiques
SyntaxeLégèrement plus complexePlus simple
RécursionOuiNon (dir uniquement)
Formats de sortieJSON, CSV, HTML, MDStdout, JSON

ffuf est généralement préféré pour sa flexibilité. Gobuster reste utile pour des cas simples grâce à sa syntaxe claire.

—The Gardener