Lors d'un audit de sécurité sur une application web, il est essentiel d'identifier les ressources exposées publiquement, comme des fichiers, des dossiers ou encore des endpoints d’API. L'énumération de ces éléments permet de découvrir des failles de sécurité potentielles et d’élargir la surface d’attaque.
Pour cette tâche, il existe plusieurs outils comme DirBuster, GoBuster ou encore FFuF (Fast Fuzzing), un outil open-source développé en Go. Rapide, efficace et flexible, FFuF est devenu un incontournable dans le domaine de la cybersécurité.
Dans cet article, nous allons voir comment FFuF fonctionne, comment l’installer et comment l’utiliser efficacement pour la découverte de ressources cachées.
Vous pouvez trouver le contenu de cet article sous forme de vidéo sur ma chaîne YouTube :
Téléchargement et installation
Il existe plusieurs façons d’installer FFuF selon votre système d’exploitation :
- Téléchargement des binaires précompilés (Windows, Linux, Mac) :
- Installation via Go :
go install github.com/ffuf/ffuf/v2@latest
- Compilation manuelle :
git clone https://github.com/ffuf/ffuf.git
cd ffuf
go get
go build
- Installation via un gestionnaire de paquets (ex. sur Kali Linux) :
sudo apt install ffuf
Dictionnaires et wordlists
Pour fonctionner, FFuF nécessite des fichiers contenant des listes de mots ou de chemins à tester. Une des sources les plus populaires est le dépôt SecLists, qui regroupe une vaste collection de wordlists adaptées à divers types de tests.
Téléchargement de SecLists :
cd /opt/
git clone https://github.com/danielmiessler/SecLists.git
Une fois les wordlists en place, nous pouvons commencer à utiliser FFuF.
Recherche de fichiers et dossiers cachés
La commande de base pour scanner un site web et découvrir des fichiers ou dossiers cachés est :
ffuf -c -w /opt/SecLists/Discovery/Web-Content/common.txt -u https://example.com/FUZZ
Explication :
-c
: active la coloration des résultats dans le terminal-w
: spécifie le fichier contenant les mots à tester-u
: définit l’URL cible avec FUZZ comme paramètre remplacé par les mots du dictionnaire
FFuF enverra une requête pour chaque mot du dictionnaire et affichera les ressources trouvées.
Recherche récursive
Pour automatiser l’énumération en testant aussi les sous-dossiers trouvés, on ajoute -recursion
:
ffuf -c -w /opt/SecLists/Discovery/Web-Content/common.txt -recursion -u https://example.com/FUZZ
FFuF analysera ainsi chaque dossier découvert et cherchera d'autres fichiers ou sous-dossiers à l’intérieur.
Filtrage des résultats
Certains serveurs renvoient toujours un code HTTP 200, même lorsque la ressource n’existe pas. Pour éviter les faux positifs, on peut filtrer les réponses par taille (-fs
) ou contenu (-fr
) :
ffuf -w /opt/SecLists/Discovery/Web-Content/common.txt -u https://example.com/FUZZ -fs 669
Ou avec une expression régulière pour filtrer un message d’erreur spécifique :
ffuf -w /opt/SecLists/Discovery/Web-Content/common.txt -u https://example.com/FUZZ -fr "Page Not Found"
Recherche de paramètres d’API
FFuF peut aussi être utilisé pour découvrir des paramètres d’API inconnus :
ffuf -w /opt/SecLists/Discovery/Web-Content/params.txt -u "https://example.com/api/data?FUZZ=1" -mc all -fr "Required Parameter Missing"
Cette commande remplace FUZZ
par chaque mot du dictionnaire pour tester différents paramètres et identifier ceux qui sont acceptés par l’application.
Découverte de VHosts
FFuF permet également d’énumérer les Virtual Hosts sur un serveur :
ffuf -w /opt/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.example.com" -u https://example.com -fs 1495
Si un sous-domaine existe mais ne possède pas d’enregistrement DNS, on peut tester sa réponse avec :
curl -H "Host: vhost.example.com" https://example.com
Conclusion
FFuF est un outil puissant, rapide et flexible pour la découverte de ressources web. Son utilisation conjointe avec des wordlists adaptées et ses nombreuses options de filtrage permettent d’obtenir des résultats précis et exploitables.
Que ce soit pour un pentest, du bug bounty ou simplement pour mieux comprendre l’infrastructure d’une cible, FFuF est un atout indispensable.
Si vous souhaitez approfondir vos compétences, n’hésitez pas à tester FFuF sur des plateformes comme TryHackMe ou HackTheBox.