Un pentest web (penetration test web) est un audit offensif encadré contractuellement d'une application web ou API, visant à identifier les vulnérabilités exploitables par un attaquant réel. Il représente environ 50 % du marché pentest en France en 2026 selon les panels Apec et Numeum. La méthodologie suit 5 phases structurées : reconnaissance (scope, technologies, surface d'attaque), mapping (énumération endpoints, fonctionnalités, flux utilisateur), exploitation (tests OWASP Top 10 2021 et business logic), post-exploitation (chaînage, pivot, exfiltration), reporting (rapport 30-80 pages avec preuves et remédiation). Durée typique : 5 à 15 jours-hommes selon scope. Trois types de mandat : black box (zéro info), gray box (comptes fournis, 70-80 % du marché FR), white box (code source et docs fournis). Stack d'outils dominée par Burp Suite Professional (80 % du temps de mission) complétée par OWASP ZAP, sqlmap, Ffuf, Nuclei. Cadre juridique strict : article 323 du Code pénal sanctionne toute action hors scope autorisé. Cet article détaille la définition, les 5 phases de méthodologie, les 3 types de mandat, les vulnérabilités recherchées (OWASP Top 10 + business logic), la stack d'outils, la distinction avec bug bounty et AppSec review, et fournit un exemple concret de rapport pentest web.
1. Définition précise : qu'est-ce qu'un pentest web ?
Le pentest web est un audit offensif contractualisé d'une surface d'attaque web (application, API, webservice) réalisé par un professionnel cybersécurité avec autorisation écrite formelle du propriétaire du système audité.
Trois caractéristiques fondamentales
- Contractualisé : Rules of Engagement (RoE) signés avant toute action. Scope défini, dates précisées, contacts d'escalade établis. Sans autorisation écrite, l'activité constitue un accès frauduleux à un STAD (article 323-1 du Code pénal français).
- Offensif : le pentester simule les techniques d'un attaquant réel (reconnaissance, exploitation, post-exploitation, exfiltration) pour identifier ce qu'un adversaire pourrait exploiter. Différent de l'audit de conformité qui évalue contre un référentiel documentaire.
- Livrable structuré : rapport de 30 à 80 pages selon scope, incluant synthèse exécutive pour les dirigeants, résumé technique, inventaire des vulnérabilités avec CVSS, chemins d'attaque reproduits avec preuves, recommandations de remédiation priorisées.
Cadre juridique en France 2026
Le pentest web est strictement encadré par :
- Article 323-1 du Code pénal (accès frauduleux à un STAD).
- Article 323-2 (atteinte à l'intégrité).
- Article 323-3 (atteinte aux données contenues).
- Loi Godfrain (socle historique).
- Pour les auditeurs PASSI qualifiés ANSSI, référentiel PASSI complémentaire.
2. Les 5 phases d'une mission pentest web
Méthodologie standard alignée sur OWASP Web Security Testing Guide (WSTG) et PTES (Penetration Testing Execution Standard).
| Phase | Durée typique (mission 10 j.h.) | Objectif |
|---|---|---|
| 1 — Reconnaissance | 1-2 j.h. | Comprendre le scope, identifier les technologies, cartographier la surface d'attaque |
| 2 — Mapping | 1-2 j.h. | Énumérer tous les endpoints, fonctionnalités, rôles utilisateur, flux métier |
| 3 — Exploitation | 4-6 j.h. | Tester chaque vulnérabilité OWASP Top 10 et business logic sur chaque endpoint pertinent |
| 4 — Post-exploitation | 0-2 j.h. | Chaîner les vulnérabilités, pivoter si scope le permet, évaluer l'impact réel |
| 5 — Reporting | 2-3 j.h. | Rédiger le rapport structuré avec preuves, CVSS, recommandations |
Phase 1 — Reconnaissance
Activités :
- Revue du scope signé (URL, sous-domaines, API, restrictions).
- Identification des technologies via headers HTTP, comportements applicatifs, Wappalyzer (CMS, framework, backend, base de données).
- OSINT passif si scope le permet (Shodan, crt.sh pour certificats, archives wayback machine).
- Reconnaissance active : brute force répertoires (Ffuf, Gobuster), énumération sous-domaines.
Livrable phase 1 : cartographie technologique et première surface d'attaque documentée.
Phase 2 — Mapping (énumération)
Activités :
- Navigation complète dans l'application pour identifier tous les endpoints visibles.
- Capture du trafic dans Burp Suite Proxy pour reconstituer l'arborescence.
- Test des différents rôles utilisateur (user simple, admin, utilisateur premium) si gray box ou white box.
- Identification des fonctionnalités sensibles : authentification, paiement, export de données, gestion des utilisateurs.
Livrable phase 2 : inventaire exhaustif des endpoints et fonctionnalités à tester.
Phase 3 — Exploitation (cœur de la mission)
Tests systématiques sur chaque endpoint pertinent :
- A01 Broken Access Control : IDOR (manipulation d'IDs dans les URL), missing authorization, path traversal.
- A02 Cryptographic Failures : analyse TLS (testssl.sh), stockage en clair, algorithmes cassés (MD5, SHA-1 pour hash de mot de passe).
- A03 Injection : SQLi (sqlmap + tests manuels), XSS stockée/réfléchie/DOM, command injection, SSTI (Server-Side Template Injection), XXE (XML External Entity).
- A07 Authentication : brute force, account enumeration, session fixation, JWT faible.
- A10 SSRF : Server-Side Request Forgery via parseur URL, fetch côté serveur.
- Business logic : conditions métier (achat à 0 €, manipulation de quantités, abus de workflow).
Phase 4 — Post-exploitation
Activités :
- Chaînage de vulnérabilités (ex. XSS → cookie steal → session hijack → admin takeover).
- Exfiltration de données démonstrative (échantillon, pas massif).
- Évaluation de l'impact réel : quelle donnée a été accessible, quel privilège a été obtenu.
- Nettoyage des artefacts si modifications effectuées (comptes test créés, données test insérées).
Phase 5 — Reporting
Structure standard du rapport :
- Synthèse exécutive (1-2 pages) pour dirigeants : nombre de vulnérabilités par criticité, risques business, priorités d'action.
- Résumé technique (2-3 pages) : périmètre testé, méthodologie, conditions de test.
- Fiches vulnérabilités (5-40 pages) : une par vulnérabilité avec description, CVSS, preuve (screenshots, payloads), reproduction step-by-step, recommandation de remédiation, références OWASP / CWE.
- Annexes : liste endpoints testés, méthodologie complète, outils utilisés, glossaire.
3. Les 3 types de mandat (black / gray / white box)
Chaque type a ses cas d'usage, son budget en j.h. et sa couverture.
| Type | Informations fournies | Scénario simulé | Couverture typique | Budget j.h. |
|---|---|---|---|---|
| Black box | URL et scope uniquement | Attaquant externe sans accès | 30-50 % | 5-10 j.h. |
| Gray box | Comptes utilisateur + rôles | Attaquant avec compte légitime | 60-80 % | 8-15 j.h. |
| White box | Code source, docs, accès logs | Audit complet application critique | 85-95 % | 15-30 j.h. |
Quand choisir chaque mode
Black box convient pour :
- Simulation réaliste d'attaque externe.
- Test de la perception de sécurité depuis l'extérieur.
- Budget limité (5-10 j.h.) sur périmètre réduit.
Gray box est le mode dominant (70-80 % des missions pentest web françaises) :
- Détection des vulnérabilités d'authentification et d'autorisation (IDOR, broken access control).
- Test de l'escalade de privilèges.
- Audit des fonctionnalités accessibles uniquement après authentification.
White box convient pour :
- Applications critiques (paiement, santé, défense, OIV).
- Détection des vulnérabilités logiques profondes cachées dans le code.
- Audit de conformité strict (PCI-DSS, HDS).
- Budget élevé (15-30 j.h.).
4. Les vulnérabilités recherchées (OWASP Top 10 + business logic)
OWASP Top 10 2021
Référentiel central pour tout pentester web. Les 10 catégories structurent la phase d'exploitation.
| Catégorie | Exemples concrets | Fréquence observée |
|---|---|---|
| A01 — Broken Access Control | IDOR, missing authz, path traversal, CORS mal configuré | Très élevée (94 % apps testées) |
| A02 — Cryptographic Failures | TLS 1.0, MD5 pour mots de passe, stockage en clair | Élevée (75 %) |
| A03 — Injection | SQLi, XSS, command injection, SSTI, XXE | Très élevée (94 %) |
| A04 — Insecure Design | Pas de rate limiting, workflow abusable | Élevée (73 %) |
| A05 — Security Misconfiguration | Defaults verbeux, CORS permissif, headers manquants | Très élevée (90 %) |
| A06 — Vulnerable Components | Bibliothèques obsolètes avec CVE | Élevée (84 %) |
| A07 — Auth Failures | Brute force possible, session fixation | Moyenne (40-60 %) |
| A08 — Software Integrity Failures | Dépendances non signées, CI/CD compromis | Moyenne (30-50 %) |
| A09 — Logging Failures | Absence de logs, pas de détection tentative | Très élevée (90 %) |
| A10 — SSRF | Parseur URL côté serveur abusable | Moyenne (30-50 %) |
Vulnérabilités business logic (non couvertes par OWASP Top 10)
Spécifiques à l'application testée, nécessitent une compréhension du métier :
- Achat à prix négatif ou nul (manipulation de quantités dans le panier).
- Parrainage abusif (utilisateur qui se parraine lui-même 100 fois).
- Course conditions (race conditions) : double spending, vote multiple.
- Abus de workflow : sauter une étape critique du processus métier.
- Enumeration business (lister les commandes d'autres clients via pagination).
Ces vulnérabilités demandent plus de temps à détecter (pas d'outil automatisé), mais sont souvent plus impactantes business que les CVE classiques.
5. La stack d'outils du pentester web
Burp Suite Professional (dominant 80 % du temps)
Tarif : 450 $ par an par utilisateur. Standard absolu en pentest web 2026.
Fonctions principales :
- Proxy : interception et modification de toutes les requêtes HTTP/HTTPS.
- Repeater : rejoue des requêtes modifiées, cœur du test manuel.
- Intruder : automation de tests (fuzzing paramètres, brute force).
- Scanner : scan automatisé de vulnérabilités web (payant Burp Pro uniquement).
- Decoder / Comparer : utilitaires encodage et diff de réponses.
Extensions clés (BApp Store) :
- Autorize : test automatique d'autorisation en remplaçant les sessions.
- JWT Editor : manipulation interactive de JWT.
- Turbo Intruder : brute force haute performance.
- Param Miner : détection de paramètres cachés.
- ActiveScan++ : extension scanner avec checks additionnels.
Autres outils essentiels
- OWASP ZAP : alternative open source à Burp. Moins ergonomique mais automation CI/CD native via API REST.
- sqlmap : référence absolue pour tests SQL injection automatisés. Python CLI.
- Ffuf et Gobuster : brute force de répertoires, sous-domaines, paramètres.
- Nuclei : scan de vulnérabilités par templates YAML (communauté active, 5000+ templates).
- Postman et Bruno : construction et organisation de requêtes API, collections partageables.
- testssl.sh : analyse approfondie de configuration TLS.
- Wappalyzer (extension navigateur) : identification de technologies web.
Scripts Python personnels
Chaque pentester web confirmé a 10-30 scripts Python personnels pour des cas spécifiques :
- Wrappers d'API clients pour tester un backend spécifique.
- Parseurs de réponses JSON structurés pour extraire des patterns.
- Automation de chaînes d'exploitation custom.
- Générateurs de payloads polyglot adaptés au contexte.
6. Pentest web vs bug bounty vs AppSec review
Trois approches de sécurité web souvent confondues. Tableau comparatif opérationnel.
| Dimension | Pentest web | Bug bounty | AppSec review |
|---|---|---|---|
| Cadre | Mission contractuelle ponctuelle | Programme public continu | Rôle interne attaché produit |
| Durée | 5-15 jours par mission | Continu (pas de durée fixe) | 6-36 mois (contrat produit) |
| Couverture | Exhaustive sur scope défini | Variable selon chasseurs | Complète sur SDLC du produit |
| Rémunération | Forfait mission 5 000-30 000 € | Prime par vulnérabilité validée | Salarié (AppSec engineer) |
| Garantie | Résultat exhaustif (rapport) | Aucune (pas de vuln = pas de prime) | Continuité long terme |
| Livrable | Rapport 30-80 pages | Rapport individuel par vulnérabilité | Threat models + code reviews + pentest interne |
| Relation | Client - prestataire | Chasseur - plateforme | Employé - équipe produit |
Complémentarité en pratique
Un produit SaaS B2B mature en 2026 combine typiquement les trois :
- AppSec engineer interne : threat modeling des nouvelles features, code review continue, pentest applicatif interne hebdomadaire.
- Pentest web externe annuel : audit indépendant complet pour certification ISO 27001, SOC 2 Type II, ou exigence client.
- Programme bug bounty public : YesWeHack ou HackerOne, scope restreint, prime par vulnérabilité critique.
Pour approfondir la fiche métier AppSec engineer, voir Qu'est-ce qu'un AppSec engineer ? Fiche métier. Pour la spécialisation API spécifiquement, voir Qu'est-ce qu'un expert API security ? Fiche métier.
7. Exemple concret d'un rapport pentest web
Extrait type d'une fiche vulnérabilité dans un rapport pentest web professionnel. Exemple : SSRF via fonction d'import URL.
finding_id: "P001-SSRF-IMPORT"
titre: "Server-Side Request Forgery (SSRF) via endpoint d'import d'image"
criticite_cvss: 8.6
vecteur_cvss: "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L"
owasp_2021: "A10 - Server-Side Request Forgery (SSRF)"
cwe: "CWE-918"
description: |
L'endpoint POST /api/v1/import-image accepte un paramètre url
fourni par l'utilisateur authentifie pour recuperer une image distante.
Aucune validation n'est effectuee sur l'URL fournie. Un attaquant
authentifie peut faire pointer cette URL vers des ressources internes
non exposees a l'Internet, incluant les metadonnees AWS EC2.
endpoint_vulnerable: "POST /api/v1/import-image"
scope: "Application principale, gray box utilisateur standard"
requete_exploit:
methode: "POST"
url: "https://app.example.fr/api/v1/import-image"
headers:
Authorization: "Bearer <JWT_user_standard>"
Content-Type: "application/json"
body: |
{
"url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/prod-role"
}
reponse_obtenue: |
HTTP/1.1 200 OK
Content-Type: application/json
{
"imported_content": "AKIA...REDACTED..."
}
impact_technique: |
Un attaquant authentifie peut recuperer les credentials IAM
temporaires du role EC2 attaches a l'instance, lui permettant
d'acceder aux ressources AWS (S3, DynamoDB, RDS) selon les
permissions du role prod-role.
impact_business: |
Acces potentiel aux donnees clients stockees en S3 (10M d'enregistrements).
Risque de fuite massive si l'attaquant escalade l'acces.
reproduction:
- "S'authentifier avec un compte utilisateur standard (inscription libre)"
- "Executer la requete POST ci-dessus avec l'URL du metadata service AWS"
- "Observer le contenu retourne contenant les credentials AWS"
recommandation_remediation:
priorite: "CRITIQUE - remediation sous 7 jours"
actions:
- "Valider le format de l'URL (protocole HTTPS uniquement)"
- "Blocker explicitement les IP privees et link-local (169.254.0.0/16, 10.0.0.0/8, etc.)"
- "Utiliser un DNS rebinding protection (resolution avec verification)"
- "Isoler la fonction d'import dans un service dedie sans acces reseau prive"
- "Desactiver IMDSv1 sur les instances EC2, forcer IMDSv2 (AWS)"
references:
- "OWASP SSRF Cheat Sheet"
- "PortSwigger Web Security Academy - SSRF"
- "https://owasp.org/www-community/attacks/Server_Side_Request_Forgery"
statut_remediation: "Non remediee (a valider lors du retest)"Ce type de fiche structurée est répété pour chaque vulnérabilité identifiée dans le rapport final. Un rapport pentest web moyen contient 5-20 fiches de ce type selon scope et maturité sécurité du client.
Points clés à retenir
- Pentest web = audit offensif contractualisé d'une application web ou API, 5-15 j.h. selon scope.
- 5 phases de méthodologie : reconnaissance, mapping, exploitation, post-exploitation, reporting.
- 3 types de mandat : black box (30-50 % couverture), gray box (dominant en France 2026, 70-80 % des missions), white box (15-30 j.h., critique).
- Référentiel central OWASP Top 10 2021 + business logic spécifique à l'application.
- Stack outils dominée par Burp Suite Pro (80 % du temps), complétée par OWASP ZAP, sqlmap, Ffuf, Nuclei.
- Distinction claire avec bug bounty (continu, prime par vuln) et AppSec review (interne, durable).
- Cadre juridique strict : article 323 Code pénal, Rules of Engagement signés obligatoires.
- Livrable structuré : rapport 30-80 pages avec synthèse exécutive, fiches vulnérabilités CVSS, recommandations priorisées.
Pour la fiche métier pentester détaillée, voir Qu'est-ce qu'un pentester ? Fiche métier complète. Pour le market reality et les trajectoires d'accès au pentest junior, voir Peut-on devenir pentester sans expérience ?. Pour le plan opérationnel 18 mois pour devenir pentester, voir Les étapes pour devenir pentester : plan complet. Pour comparer avec l'AppSec engineer (rôle interne hands-on web), voir Qu'est-ce qu'un AppSec engineer ? Fiche métier. Pour la spécialisation API security (sous-discipline du pentest web), voir Qu'est-ce qu'un expert API security ? Fiche métier. La formation OWASP Web Security de Zeroday couvre exactement la méthodologie pentest web : OWASP Top 10 2021 avec labs pratiques, Burp Suite Professional avec extensions, exploitation manuelle des 10 catégories, business logic, rédaction de rapport structurée — base essentielle pour un premier poste pentest web junior.






