---
title: "Enumération HTTP/HTTPS"
domain: security
subdomain: pentest
phase: 03-enumeration
type: snippet
tags: [http, web, enumeration, pentest, gobuster, ffuf, nikto, dirbusting]
difficulty: intermediate
status: stable
updated: "Sun May 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)"
---
## Objectifs

Cartographier la surface d'attaque web : endpoints, technologies, paramètres cachés, fichiers sensibles.

## Outils

| Outil | Usage |
|---|---|
| `gobuster` | Directory/vhost brute-force (rapide) |
| `ffuf` | Fuzzer web polyvalent |
| `nikto` | Scanner de vulnérabilités web |
| `whatweb` | Identification des technologies |
| `wafw00f` | Détection de WAF |
| `feroxbuster` | Directory brute-force récursif (Rust) |

## Reconnaissance initiale

```bash vars=TARGET,OUTPUT_DIR
# Identification technologies
whatweb {{TARGET}} -v | tee {{OUTPUT_DIR}}/whatweb.txt

# Détection WAF
wafw00f {{TARGET}}

# Headers HTTP
curl -I {{TARGET}}
curl -sk {{TARGET}} | head -100

# Robots.txt et sitemap
curl -sk {{TARGET}}/robots.txt
curl -sk {{TARGET}}/sitemap.xml

# Nikto — scan général
nikto -h {{TARGET}} -o {{OUTPUT_DIR}}/nikto.txt -Format txt
```

## Gobuster — Directory busting

```bash vars=TARGET,OUTPUT_DIR,WORDLIST
# Directory brute-force de base
gobuster dir -u {{TARGET}} -w {{WORDLIST}} -o {{OUTPUT_DIR}}/dirs.txt \
  -x php,html,txt,js,json,bak,old,conf \
  -t 50 -q

# Wordlists recommandées
# /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
# /usr/share/seclists/Discovery/Web-Content/raft-medium-words.txt
# /usr/share/dirbuster/wordlists/directory-list-2.3-big.txt

# Avec authentification
gobuster dir -u {{TARGET}} -w {{WORDLIST}} -U admin -P password123

# Virtual hosts
gobuster vhost -u {{TARGET}} -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
  -o {{OUTPUT_DIR}}/vhosts.txt --append-domain

# DNS subdomain
gobuster dns -d DOMAIN.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
```

## FFUF — Fuzzing avancé

```bash vars=TARGET,OUTPUT_DIR,WORDLIST
# Directory fuzzing
ffuf -u {{TARGET}}/FUZZ -w {{WORDLIST}} -mc 200,301,302,403 \
  -o {{OUTPUT_DIR}}/ffuf-dirs.json -of json -t 50

# Fuzzing paramètres GET
ffuf -u "{{TARGET}}/page.php?FUZZ=value" \
  -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
  -mc 200 -fs 0

# Fuzzing avec filtres
ffuf -u {{TARGET}}/FUZZ -w {{WORDLIST}} \
  -mc 200,301,302 \
  -fc 404 \
  -fs 0,1234 \
  -fw 5 \
  -t 40 -o {{OUTPUT_DIR}}/ffuf.json

# Virtual host fuzzing
ffuf -u {{TARGET}} -H "Host: FUZZ.domain.com" \
  -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
  -mc 200 -fs SIZE_DU_DEFAUT
```

## Feroxbuster — Récursif

```bash vars=TARGET,OUTPUT_DIR,WORDLIST
# Scan récursif (recommandé pour les apps complexes)
feroxbuster -u {{TARGET}} -w {{WORDLIST}} \
  -x php,html,js,txt,json,bak \
  -d 3 -t 50 \
  -o {{OUTPUT_DIR}}/ferox.txt \
  --filter-status 404

# Avec headers personnalisés (auth, cookies)
feroxbuster -u {{TARGET}} -w {{WORDLIST}} \
  -H "Authorization: Bearer TOKEN" \
  -H "Cookie: session=SESSIONID"
```

<Checklist
  title="Checklist HTTP"
  storageKey="pentest-http-enum"
  items={[
    { id: "tech", label: "Technologies identifiées (whatweb, headers)" },
    { id: "waf", label: "WAF détecté ou confirmé absent (wafw00f)" },
    { id: "robots", label: "robots.txt et sitemap.xml analysés" },
    { id: "dirs", label: "Directory brute-force effectué (gobuster/ffuf)" },
    { id: "exts", label: "Extensions courantes testées (.php, .bak, .old, .conf)" },
    { id: "nikto", label: "Nikto lancé et résultats analysés" },
    { id: "vhosts", label: "Virtual hosts énumérés" },
    { id: "params", label: "Paramètres GET/POST fuzés" },
    { id: "auth", label: "Pages d'authentification et admin localisées" },
    { id: "api", label: "Endpoints API identifiés (/api, /v1, /swagger)" },
    { id: "upload", label: "Formulaires d'upload identifiés" },
    { id: "js", label: "Fichiers JS analysés pour endpoints/secrets" },
  ]}
/>

## Pièges fréquents

- **WAF** : adapter le timing et les user-agents — utiliser `-H "User-Agent: Mozilla/5.0"`
- **Rate limiting** : réduire les threads (`-t 10`) si 429 Too Many Requests
- **HTTPS sans vérif cert** : ajouter `-k` (curl) ou `-k` (gobuster) pour ignorer les erreurs SSL
- **False positives** : filtrer par taille (`-fs`) ou nombre de mots (`-fw`) dans ffuf
- **Scope** : bien vérifier que les sous-domaines découverts sont dans le scope
