---
title: "OWASP Testing Guide & ASVS — Méthodologie d'Audit"
domain: security
subdomain: pentest
phase: 00-pre-engagement
type: playbook
tags: [owasp, testing-guide, asvs, audit, methodologie, web-security]
difficulty: intermediate
status: stable
updated: "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)"
---
## OWASP Testing Guide v4.2

Référence : https://owasp.org/www-project-web-security-testing-guide/

### Phases d'un audit web OWASP

```
Phase 1 — Avant-test (Passive)
  └─ Revue documentation, architecture, threat model

Phase 2 — Collecte d'information
  └─ Fingerprinting, cartographie, analyse de surface

Phase 3 — Test de la configuration
  └─ Infrastructure, serveurs, TLS, headers de sécurité

Phase 4 — Test gestion des identités
  └─ Énumération comptes, politique de mots de passe

Phase 5 — Test authentification
  └─ Brute force, bypass, remember-me, MFA

Phase 6 — Test autorisation
  └─ IDOR, RBAC, privilege escalation horizontal/vertical

Phase 7 — Test gestion de sessions
  └─ Cookie attributes, fixation, logout, timeout

Phase 8 — Test validation des entrées
  └─ XSS, SQLi, SSRF, XXE, injection commandes

Phase 9 — Test de la logique métier
  └─ Workflow bypass, price manipulation, race conditions

Phase 10 — Test côté client
  └─ DOM XSS, postMessage, CORS, localStorage
```

---

## Checklist par catégorie

### Configuration & Infrastructure (OTG-CONFIG)
```
□ WSTG-CONF-01 : Fichiers de configuration réseau/serveur exposés
□ WSTG-CONF-02 : Configuration plateforme applicative (erreurs verbose)
□ WSTG-CONF-03 : Extensions de fichiers sensibles (.bak, .conf, .sql)
□ WSTG-CONF-04 : Fichiers non référencés (backup, admin pages)
□ WSTG-CONF-05 : Méthodes HTTP non nécessaires (PUT, DELETE, TRACE)
□ WSTG-CONF-06 : HTTP Strict Transport Security (HSTS)
□ WSTG-CONF-07 : Politique de sécurité des contenus (CSP)
□ WSTG-CONF-08 : Cookies (Secure, HttpOnly, SameSite)
```

### Authentification (OTG-AUTHN)
```
□ WSTG-AUTHN-01 : Transport des credentials en clair
□ WSTG-AUTHN-02 : Default credentials (admin/admin)
□ WSTG-AUTHN-03 : Mécanisme de verrouillage de compte
□ WSTG-AUTHN-04 : Bypass d'authentification
□ WSTG-AUTHN-05 : Remember-me vulnérable
□ WSTG-AUTHN-06 : Faiblesse cache navigateur (credentials en cache)
□ WSTG-AUTHN-07 : Politique de mots de passe faible
□ WSTG-AUTHN-08 : Reset de mot de passe (token prévisible, lien expiration)
□ WSTG-AUTHN-09 : Changement de mot de passe sans ancien mot de passe
□ WSTG-AUTHN-10 : Authentification multi-facteurs (OTP réutilisable)
```

### Autorisation (OTG-AUTHZ)
```
□ WSTG-AUTHZ-01 : Directory traversal / path traversal
□ WSTG-AUTHZ-02 : Bypasse du schéma d'autorisation
□ WSTG-AUTHZ-03 : Privilege escalation (horizontal + vertical)
□ WSTG-AUTHZ-04 : IDOR — accès aux ressources d'un autre utilisateur
```

### Gestion de sessions (OTG-SESS)
```
□ WSTG-SESS-01 : Schema de gestion des sessions (token prévisible)
□ WSTG-SESS-02 : Attributs cookies (Secure, HttpOnly, Domain, Path)
□ WSTG-SESS-03 : Session fixation
□ WSTG-SESS-04 : Variables de session exposées dans l'URL
□ WSTG-SESS-05 : CSRF
□ WSTG-SESS-06 : Logout correct (invalidation côté serveur)
□ WSTG-SESS-07 : Session timeout
□ WSTG-SESS-08 : JWT — validation, algorithme, expiration
```

### Validation des entrées (OTG-INPVAL)
```
□ WSTG-INPV-01 : Reflected XSS
□ WSTG-INPV-02 : Stored XSS
□ WSTG-INPV-03 : HTTP Verb Tampering
□ WSTG-INPV-04 : HTTP Parameter Pollution
□ WSTG-INPV-05 : SQL Injection
□ WSTG-INPV-06 : LDAP Injection
□ WSTG-INPV-07 : XML Injection
□ WSTG-INPV-08 : SSI Injection
□ WSTG-INPV-09 : XPath Injection
□ WSTG-INPV-10 : IMAP/SMTP Injection
□ WSTG-INPV-11 : Code Injection (eval, exec)
□ WSTG-INPV-12 : Command Injection
□ WSTG-INPV-13 : Buffer Overflow
□ WSTG-INPV-14 : Incubated Vulnerabilities
□ WSTG-INPV-15 : HTTP Splitting / Smuggling
□ WSTG-INPV-16 : HTTP Incoming Requests
□ WSTG-INPV-17 : Host Header Injection
□ WSTG-INPV-18 : SSTI (Server-Side Template Injection)
□ WSTG-INPV-19 : SSRF
```

---

## OWASP ASVS — Application Security Verification Standard

Référence : https://owasp.org/www-project-application-security-verification-standard/

### Niveaux de vérification

| Niveau | Cible | Contrôles |
|--------|-------|-----------|
| **L1** | Toutes les applications | ~120 — exigences minimales |
| **L2** | Applications sensibles | ~210 — données personnelles, financières |
| **L3** | Applications critiques | ~280 — défense, finance, santé |

### Chapitres ASVS (v4.0)

| Chapitre | Domaine |
|----------|---------|
| V1 | Architecture, Design, Threat Modeling |
| V2 | Authentification |
| V3 | Gestion des sessions |
| V4 | Contrôle d'accès |
| V5 | Validation, Sanitization, Encoding |
| V6 | Cryptographie |
| V7 | Gestion des erreurs et logging |
| V8 | Protection des données |
| V9 | Communication (TLS) |
| V10 | Code malveillant |
| V11 | Logique métier |
| V12 | Fichiers et ressources |
| V13 | API et Web Services |
| V14 | Configuration |

### Exemples d'exigences L1 clés
```
V2.1.1  : Mots de passe ≥ 12 caractères
V2.1.9  : Pas de contrainte de composition arbitraire (pas de "max 10 chars")
V3.2.1  : Nouveau token généré à chaque authentification
V3.4.1  : Cookie avec attribut Secure
V4.1.1  : Principe du moindre privilège sur tous les endpoints
V5.1.3  : Validation côté serveur (pas uniquement côté client)
V6.2.1  : Données sensibles chiffrées au repos avec algo approuvé
V9.1.1  : TLS pour toutes les communications sensibles
```

---

## Headers de sécurité — Vérification rapide

```bash
# Test rapide headers
curl -I https://target.com | grep -Ei \
  "strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy"

# Score headers : https://securityheaders.com

# Headers attendus
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self'; ...
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), camera=()
```

---

## TLS — Audit de configuration

```bash
# testssl.sh — audit complet TLS
testssl.sh https://target.com

# SSLyze
sslyze --regular target.com

# Points à vérifier
□ TLS 1.2+ uniquement (pas SSLv3, TLS 1.0, TLS 1.1)
□ Ciphers forts (ECDHE, AES-256-GCM)
□ Pas de ciphers NULL, RC4, DES, 3DES
□ Perfect Forward Secrecy activé
□ HSTS configuré
□ Certificat valide et non expiré
□ OCSP Stapling activé
```

---

## Reporting OWASP — Format synthèse

```markdown
## Résultats d'audit [Nom Application]

### Résumé exécutif
Période : DD/MM/YYYY - DD/MM/YYYY
Périmètre : https://target.com (scope défini)
Méthode : OWASP Testing Guide v4.2 — boîte grise

### Statistiques
| Sévérité | Nombre |
|----------|--------|
| Critique  |   2    |
| Haute     |   4    |
| Moyenne   |   7    |
| Faible    |  12    |
| Info      |   8    |

### Top findings
1. [CRITIQUE] SQLi authentification — WSTG-INPV-05
2. [HAUTE] IDOR accès données utilisateurs — WSTG-AUTHZ-04
3. [HAUTE] Token de session non invalidé au logout — WSTG-SESS-06
```
