ffuf - Découverte de contenu web et API

VérifiéPrudence

Découvrez du contenu caché, des répertoires, des sous-domaines et des points de terminaison API avec ffuf, le fuzzer Web le plus rapide. Couvre le fuzzing de répertoires, les paramètres et l'énumération d'hôtes virtuels.

Spar Skills Guide Bot
SecuriteIntermédiaire
06/09/2026
Claude CodeCursorWindsurfCodex
#fuzzing#content-discovery#recon#subdomain-enumeration#web-security

Recommandé pour

Synthèse automatique

Cette compétence explique comment utiliser ffuf, un fuzzer web écrit en Go, pour découvrir des répertoires cachés, des sous-domaines, des hôtes virtuels et des points d'API à partir de listes de mots.

Points forts

  • Couvre les cas d'usage principaux de ffuf : découverte de contenu, fuzzing de paramètres GET/POST, énumération DNS et d'hôtes virtuels
  • Montre les filtres essentiels (-fc, -fs, -mc, -mr) qui évitent de noyer les résultats dans les fausses correspondances
  • Inclut des options avancées utiles : positions FUZZ multiples, récursion, extensions, limitation de débit et sortie JSON
  • Rappelle l'usage de SecLists et fournit des commandes d'installation prêtes à copier

Limites

  • Ne traite pas les aspects légaux et éthiques de l'autorisation au-delà d'une mention implicite dans un exemple
  • Suppose que l'utilisateur sait choisir et interpréter les listes de mots, sans guide de sélection
  • Peu d'indications sur le réglage du throttling pour éviter de saturer un serveur en production
  • Pas de section sur l'analyse des résultats ni sur l'intégration avec d'autres outils de reconnaissance
Quand l'utiliser

À utiliser lorsqu'un test d'intrusion ou une chasse aux bugs autorisé nécessite de cartographier du contenu web, des sous-domaines ou des points d'API non documentés.

Quand l'éviter

À ne pas utiliser sur des cibles que vous n'êtes pas explicitement autorisé à tester, ni comme substitut à un scan de vulnérabilités complet.

Analyse de sécurité

Prudence
Score qualité90/100

The skill teaches web fuzzing with ffuf, a legitimate security tool, and includes clear authorization and rate-limiting guidance. It does not contain destructive or exfiltrating commands, but the network-scanning capability is powerful and could be misused, so it warrants caution.

Points d'attention
  • •Instructs use of ffuf, a network fuzzing tool that sends numerous HTTP requests and can cause load or be used for unauthorized scanning if the user lacks permission.
  • •Includes a command to download and run a binary from GitHub releases without checksum verification, though this is common practice.
  • •Skill includes explicit authorization warning, but execution still relies on user compliance.
Comment cette analyse est faite

Exemples

Hidden directory discovery
Run ffuf against https://staging.example.com to find hidden directories using common.txt, and filter out 404 responses.
Subdomain enumeration
Enumerate subdomains of example.com with ffuf and SecLists' top 5000 subdomain list, hiding 404s.
Authenticated API endpoint fuzzing
Fuzz API paths under https://api.example.com/v1/ with my bearer token, showing only 200, 401 and 403 responses.

name: ffuf description: >- Discover hidden content, directories, subdomains, and API endpoints with ffuf — the fastest web fuzzer. Use when someone asks to "find hidden directories", "fuzz URLs", "discover API endpoints", "subdomain enumeration", "content discovery", "ffuf", "brute force paths", or "find hidden files on a website". Covers directory fuzzing, parameter fuzzing, subdomain discovery, virtual host enumeration, and recursive scanning. license: Apache-2.0 compatibility: "Any OS. Go binary." metadata: author: terminal-skills version: "1.0.0" category: devops tags: ["security", "fuzzing", "recon", "ffuf", "content-discovery"]

ffuf (Fuzz Faster U Fool)

Overview

ffuf is the fastest web fuzzer available — written in Go, it discovers hidden files, directories, subdomains, and API endpoints by sending thousands of requests with wordlist-based payloads. Unlike dirbuster or gobuster, ffuf supports multiple fuzzing positions (URL, headers, POST body, cookies), response filtering, and recursive scanning.

When to Use

  • Discovering hidden directories and files on web servers
  • Finding undocumented API endpoints
  • Subdomain and virtual host enumeration
  • Parameter discovery (GET/POST)
  • Bug bounty reconnaissance
  • Pre-pentest content discovery

Instructions

Setup

# Install
go install github.com/ffuf/ffuf/v2@latest

# Or download binary
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz

# Get wordlists (SecLists is the standard)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git

Directory Discovery

# Basic directory fuzzing — FUZZ keyword marks the injection point
ffuf -u https://target.com/FUZZ -w SecLists/Discovery/Web-Content/common.txt

# Filter by response code (ignore 404s)
ffuf -u https://target.com/FUZZ -w common.txt -fc 404

# Filter by response size (remove default pages)
ffuf -u https://target.com/FUZZ -w common.txt -fs 4242

# Match only specific codes
ffuf -u https://target.com/FUZZ -w common.txt -mc 200,301,302,403

# Recursive scanning — follow discovered directories
ffuf -u https://target.com/FUZZ -w common.txt -recursion -recursion-depth 2

# With extensions
ffuf -u https://target.com/FUZZ -w common.txt -e .php,.bak,.old,.txt,.json,.env

Subdomain Discovery

# Subdomain fuzzing via DNS
ffuf -u https://FUZZ.target.com -w SecLists/Discovery/DNS/subdomains-top1million-5000.txt -fc 404

# Virtual host discovery (different from DNS — checks Host header)
ffuf -u https://target.com -w subdomains.txt -H "Host: FUZZ.target.com" -fs 1234

API Endpoint Discovery

# REST API path fuzzing
ffuf -u https://api.target.com/v1/FUZZ -w SecLists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,401,403

# API with authentication
ffuf -u https://api.target.com/v1/FUZZ -w api-endpoints.txt \
  -H "Authorization: Bearer eyJhbG..." -mc 200

# Parameter fuzzing (GET)
ffuf -u "https://target.com/api/users?FUZZ=value" -w SecLists/Discovery/Web-Content/burp-parameter-names.txt -fs 0

# POST body parameter fuzzing
ffuf -u https://target.com/api/login -X POST \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","FUZZ":"test"}' \
  -w params.txt -fc 400

Advanced Usage

# Multiple wordlists (two FUZZ positions: W1 and W2)
ffuf -u https://target.com/W1/W2 -w endpoints.txt:W1 -w ids.txt:W2

# Output to JSON for automation
ffuf -u https://target.com/FUZZ -w common.txt -o results.json -of json

# Throttled scanning (polite)
ffuf -u https://target.com/FUZZ -w common.txt -rate 50 -t 10

# Custom match on response body
ffuf -u https://target.com/FUZZ -w common.txt -mr "admin|dashboard|config"

Examples

Example 1: Full recon on a new target

User prompt: "I have permission to pentest example.com. Start with content discovery."

The agent will run ffuf for directory discovery with common.txt, then check for backup files (.bak, .old, .sql), hidden API endpoints, and admin panels.

Example 2: Find hidden API endpoints

User prompt: "Our API has undocumented endpoints left by previous developers. Find them."

The agent will fuzz API paths with REST-specific wordlists, try common API versioning patterns (/v1/, /v2/), and check HTTP methods (GET, POST, PUT, DELETE) on discovered endpoints.

Guidelines

  • ALWAYS have authorization — fuzzing without permission is illegal
  • Start with common.txt — then escalate to bigger wordlists if needed
  • Filter noise first — use -fc 404 or -fs <size> to remove false positives
  • Rate limit — -rate 50 for production targets, unlimited for local/staging
  • FUZZ is the keyword — place it wherever you want to inject wordlist entries
  • Extensions matter — -e .php,.bak,.env catches backup and config files
  • JSON output for automation — -o results.json -of json for pipeline integration
  • Recursive with caution — -recursion-depth 2 max to avoid infinite loops
  • SecLists is essential — the standard wordlist collection for web fuzzing

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ffuf-web-content-api-discovery-mtpag6th/download' --output '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md.part' && mv '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md.part' '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Environnement déclaré par l’auteur : Any OS. Go binary.

Extrait original : Setup
# Install
go install github.com/ffuf/ffuf/v2@latest

# Or download binary
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz

# Get wordlists (SecLists is the standard)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.claude/skills/ffuf'

Cursor
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.cursor/skills/ffuf'

Codex
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.agents/skills/ffuf'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/ffuf-web-content-api-discovery-mtpag6th'

openskills read 'ffuf-web-content-api-discovery-mtpag6th'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires