Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Offensive
April 16, 2026

Bug Bounty — Méthodologie

Le bug bounty est un programme par lequel une organisation invite des chercheurs en sécurité externes à trouver et signaler des vulnérabilités dans ses systèmes, en échange d’une récompense financière. Cette note couvre la méthodologie de chasse, de la reconnaissance au rapport.

Plateformes§

PlateformeModèleParticularité
HackerOnePublic + privéLa plus grande, programmes majeurs (US DoD, GitHub, Shopify)
BugcrowdPublic + privéForte présence enterprise, programmes VDP
IntigritiPublic + privéBasée en Europe, conforme GDPR
YesWeHackPublic + privéFrançaise, programmes gouvernementaux FR
SynackPrivé (Red Team)Sélection stricte des chercheurs, accès contrôlé

Programmes publics vs privés§

Comprendre le scope§

Avant toute chose, lire intégralement le programme policy :

ElementPourquoi
Scope (in-scope / out-of-scope)Quels domaines, apps, APIs sont autorisés
Vulnérabilités excluesSelf-XSS, rate limiting, SPF/DKIM manquant sont souvent exclus
Règles d’engagementPas de DoS, pas de données utilisateur réelles, pas d’ingénierie sociale
Safe harborProtection légale pour les chercheurs qui respectent les règles
RécompensesGrille par sévérité (Critical, High, Medium, Low)

Tester hors scope ou ignorer les règles = ban de la plateforme et potentiellement des poursuites légales.

Phase 1 — Reconnaissance§

La recon est la phase la plus importante. Plus la surface d’attaque est cartographiée, plus les chances de trouver une vulnérabilité sur un asset oublié sont élevées.

Enumération de sous-domaines§

# Sources passives (DNS historique, Certificate Transparency)
subfinder -d target.com -o subs.txt
amass enum -passive -d target.com -o amass.txt
assetfinder --subs-only target.com >> subs.txt

# Brute-force DNS
puredns bruteforce wordlist.txt target.com -r resolvers.txt -w brute.txt

# Fusionner et dédupliquer
cat subs.txt amass.txt brute.txt | sort -u > all_subs.txt

# Vérifier lesquels sont vivants
httpx -l all_subs.txt -o alive.txt -status-code -title -tech-detect

Sources de reconnaissance passive§

SourceOutil / Méthode
Certificate Transparencycrt.sh (%.target.com), certspotter
DNS historiqueSecurityTrails, DNSDumpster, VirusTotal
Wayback Machinewaybackurls target.com — URLs historiques
Google Dorkingsite:target.com filetype:pdf, inurl:admin, intitle:login
GitHubRecherche de secrets, configs, endpoints dans les repos publics
Shodan / CensysServices exposés, ports ouverts, technologies
ASN lookupIdentifier toutes les plages IP de l’organisation

Enumération technologique§

# Identifier les technologies (CMS, framework, serveur)
whatweb https://target.com
wappalyzer # (extension navigateur)

# Scanner les ports des IP en scope
nmap -sV -sC -p- target.com -oA nmap_results

# Découvrir les endpoints et fichiers
ffuf -u https://target.com/FUZZ -w /path/to/wordlist.txt -mc 200,301,302,403
feroxbuster -u https://target.com -w wordlist.txt

# Fichiers intéressants à chercher
/.env, /.git/config, /robots.txt, /sitemap.xml
/.well-known/, /swagger.json, /api/docs
/backup.zip, /debug, /phpinfo.php, /server-status

Cartographie de l’application§

Phase 2 — Vulnérabilités à chercher§

Par fonctionnalité§

FonctionnalitéVulnérabilités à tester
LoginBrute-force, credential stuffing, bypass MFA, enumération d’utilisateurs
InscriptionAccount takeover via email manipulation, injection dans les champs
Reset mot de passeToken prédictible, host header injection, race condition
Upload de fichierRCE via webshell, bypass d’extension, SSRF via SVG/PDF
RechercheXSS réfléchi, injection SQL, LDAP injection
Export / PDFSSRF (HTML to PDF), injection de formules (CSV injection)
APIIDOR, mass assignment, broken authentication, rate limiting absent
Paramètres de profilStored XSS, CSRF, IDOR sur l’ID utilisateur
PaiementManipulation de prix, race condition, bypass de validation

OWASP Top 10 comme checklist§

#CatégorieExemple de test
A01Broken Access ControlIDOR : changer l’ID dans /api/users/123 pour accéder au profil d’un autre
A02Cryptographic FailuresDonnées sensibles en clair, tokens JWT avec alg: none
A03InjectionSQLi, XSS, command injection, template injection (SSTI)
A04Insecure DesignLogique métier contournable, absence de rate limiting
A05Security MisconfigurationHeaders manquants, debug mode en production, CORS *
A06Vulnerable ComponentsCVE connues dans les dépendances (retire.js, Snyk)
A07Auth FailuresSession fixation, tokens faibles, MFA contournable
A08Data Integrity FailuresDésérialisation non sécurisée, CI/CD compromise
A09Logging FailuresPas directement exploitable mais aggrave l’impact
A10SSRFRequête côté serveur vers des services internes (metadata cloud, Redis)

Vulnérabilités à fort impact§

Les vulnérabilités les mieux payées sont celles qui donnent un accès critique :

ClasseImpactPayout typique
RCE (Remote Code Execution)Contrôle total du serveur5 000 - 100 000+ USD
SQLi avec exfiltrationAccès à la base de données3 000 - 50 000 USD
SSRF vers cloud metadataAccès aux credentials AWS/GCP3 000 - 30 000 USD
Account takeoverPrise de contrôle de n’importe quel compte2 000 - 20 000 USD
IDOR sur données sensiblesAccès aux données d’autres utilisateurs1 000 - 10 000 USD
Stored XSSExécution de JS dans le navigateur d’autres utilisateurs500 - 5 000 USD

Phase 3 — Exploitation et validation§

Principes§

Outils principaux§

OutilUsage
Burp Suite (Pro)Proxy HTTP, scanner, repeater, intruder — outil central
ffuf / feroxbusterFuzzing de répertoires et paramètres
sqlmapExploitation automatique d’injections SQL
nucleiScanner de vulnérabilités basé sur des templates
XSS HunterDétecter les blind XSS (callback quand le payload s’exécute)
Collaborator (Burp)Détecter les SSRF et injections out-of-band
jwt_toolTester les faiblesses JWT (none algorithm, key confusion)
Postman / curlTester les API manuellement

Exemple : tester un IDOR§

1. Créer deux comptes : [email protected] et [email protected]
2. Se connecter en tant que victim, naviguer vers /api/profile/456
3. Se connecter en tant que attacker, changer la requête vers /api/profile/456
4. Si les données de victim sont retournées → IDOR confirmé
5. Tester aussi avec les méthodes PUT/DELETE pour mesurer l'impact

Phase 4 — Rédiger le rapport§

Un bon rapport est aussi important que la vulnérabilité elle-même. Un rapport mal rédigé sera sous-évalué, renvoyé pour clarification, ou fermé comme “informative”.

Structure d’un rapport§

Titre : [Type] Description concise avec localisation
  Ex: "IDOR on /api/v2/orders/{id} allows reading any user's order history"

Sévérité : Critical / High / Medium / Low (justifier avec CVSS si possible)

Description : 
  - Ce que fait la vulnérabilité
  - Pourquoi c'est un problème (impact concret)

Etapes de reproduction :
  1. Aller sur https://target.com/endpoint
  2. Intercepter la requête avec Burp
  3. Modifier le paramètre X en Y
  4. Observer que...
  (Chaque étape doit être reproductible par un triager qui ne connaît pas l'application)

Preuve :
  - Screenshots annotés
  - Requêtes/réponses HTTP (depuis Burp)
  - Vidéo si le flux est complexe

Impact :
  - Quelles données sont exposées
  - Combien d'utilisateurs sont affectés
  - Quel est le pire scénario réaliste

Recommandation de correction :
  - Vérification d'autorisation côté serveur
  - Utiliser des identifiants non prédictibles (UUID)

Erreurs courantes§

Workflow quotidien§

Choisir un programme
       |
       v
Recon (sous-domaines, endpoints, technologies)
       |
       v
Sélectionner une surface d'attaque
(fonctionnalité précise, API endpoint, asset oublié)
       |
       v
Tester manuellement (Burp Suite)
       |
       v
Vulnérabilité trouvée ?
  /          \
 NON         OUI
  |            |
  v            v
Changer      Valider l'impact
de cible     Rédiger le rapport
             Soumettre

Conseils stratégiques§

Légalité§

Le bug bounty est légal uniquement dans le cadre du programme :

En France, l’article 323-1 du Code pénal punit l’accès frauduleux à un système informatique. Le cadre du bug bounty avec safe harbor constitue une autorisation explicite.

Références§

—The Gardener