Lorsque vous lancez DVWA pour la première fois, la liste des modules peut sembler impressionnante. Pourtant, chacun d’eux a un objectif bien précis : vous apprendre à reconnaître, comprendre et exploiter une vulnérabilité web dans un environnement sécurisé. Savoir à quoi correspond chaque module DVWA est la première étape pour progresser efficacement en cybersécurité.
Dans ce tutoriel, vous allez découvrir le rôle de chaque module, les notions de sécurité qu’il permet d’aborder et l’ordre idéal pour les étudier lorsque l’on débute. À la fin de votre lecture, vous saurez exactement par où commencer et comment construire un parcours d’apprentissage logique sans vous éparpiller.
- Comprendre à quoi sert chaque module DVWA pour apprendre les principales vulnérabilités web sans se sentir perdu.
- Identifier un ordre de progression logique afin d’acquérir des bases solides avant d’aborder les techniques les plus avancées.
- Mieux comprendre les mécanismes des attaques les plus courantes pour développer de bons réflexes en cybersécurité et en développement web.
Si vous ouvrez DVWA pour la première fois, la liste des modules peut sembler impressionnante. Pourtant, chacun d’eux a un objectif bien précis : vous apprendre une famille de vulnérabilités utilisée dans les applications web.
👉 Pour ceux qui débutent : DVWA Installation et paramètres.
Pourquoi DVWA est découpé en modules ?
Chaque module DVWA est consacré à une vulnérabilité particulière. Plutôt que de mélanger plusieurs notions, DVWA vous permet d’étudier un problème de sécurité à la fois.
L’idée est simple : comprendre le fonctionnement d’une faille, apprendre à l’exploiter dans un environnement de laboratoire, puis découvrir comment les développeurs peuvent la corriger.
Vous n’avez donc pas besoin de tout maîtriser immédiatement. Au contraire, il est préférable d’avancer progressivement.
👉 Bien utiliser DVWA + Exercices
Les différents modules DVWA
Brute Force
Ce module vous montre comment un pirate tente de deviner un mot de passe en essayant automatiquement des centaines, voire des milliers de combinaisons.

Par exemple, un script peut tester :
admin / admin
admin / password
admin / 123456
admin / azerty
Vous comprendrez rapidement pourquoi les mots de passe simples sont dangereux.
Vous découvrirez également des protections comme :
- la limitation du nombre de tentatives
- les délais entre deux essais
- l’authentification à plusieurs facteurs (MFA)
👉 Tutoriel associé : Hydra : Craquer un mot de passe par force brut
Command Injection
Ici, vous apprendrez ce qu’il se passe lorsqu’un programme exécute directement une commande système provenant d’un utilisateur.

Imaginons qu’une application demande une adresse IP :
127.0.0.1
Si l’application est mal protégée, un attaquant pourrait essayer :
127.0.0.1 && whoami
La commande supplémentaire pourrait alors être exécutée sur le serveur.
Ce module permet de comprendre pourquoi les développeurs doivent toujours filtrer les données reçues.
👉 Tutoriel associé : Faille RCE : Détection, exploitation et correction.
CSRF
CSRF signifie Cross-Site Request Forgery.

Le principe est simple : un utilisateur connecté à un site est incité à cliquer sur un lien ou visiter une page qui effectue une action à son insu.
Imaginez que vous soyez connecté à votre espace administrateur. En ouvrant une page piégée, celle-ci pourrait modifier votre mot de passe sans que vous vous en rendiez compte.
Vous découvrirez notamment le rôle des jetons CSRF, de petits codes uniques qui empêchent ce type d’attaque.
Tutoriel associé : Protection clickjacking et CSRF
File Inclusion
Ce module explique comment une application peut charger un fichier qui n’était pas prévu.
Par exemple, une URL pourrait contenir :
?page=contact.php
Si le programme n’effectue aucun contrôle, un attaquant pourrait tenter :
?page=../../etc/passwd
L’objectif est de comprendre les attaques LFI (Local File Inclusion) et RFI (Remote File Inclusion).
File Upload
De nombreuses applications permettent d’envoyer des fichiers.

Mais que se passe-t-il si un pirate envoie un script PHP au lieu d’une simple image ?
Ce module montre pourquoi il faut toujours vérifier :
- le type du fichier
- son extension
- son contenu réel
- son emplacement de stockage
👉 Tutoriel complémentaire : Upload de fichier sécurisé en PHP
Insecure CAPTCHA
Le CAPTCHA sert normalement à distinguer un humain d’un robot.
Dans ce module, vous découvrirez que certains CAPTCHA sont mal implémentés et peuvent être contournés.
Vous comprendrez qu’un CAPTCHA seul ne constitue jamais une protection suffisante.
👉 Tutoriel complémentaire : L’anti-spam reCAPTCHA Google
SQL Injection
C’est probablement le module le plus célèbre de DVWA.

Il montre comment une requête SQL peut être modifiée lorsqu’une application insère directement les données saisies par l’utilisateur.
Exemple simplifié :
SELECT * FROM users
WHERE id='1';
Un attaquant pourrait essayer :
1' OR '1'='1
La requête devient alors :
SELECT * FROM users
WHERE id='1' OR '1'='1';
Comme la condition est toujours vraie, la base de données peut retourner tous les utilisateurs.
Vous comprendrez aussi pourquoi les requêtes préparées permettent d’éviter cette faille.
👉 Tutoriels associés :
- L’outil SQLMap : Scan de failles SQL
- Comment se protéger des injections SQL
SQL Injection (Blind)
Ici, l’application n’affiche plus directement les résultats.
Le pirate doit donc déduire les informations en observant le comportement du serveur.
Par exemple :
- une page qui répond différemment
- un délai inhabituel
- un message d’erreur discret
Cette méthode est plus lente, mais reste très utilisée contre les sites mal protégés.
Weak Session IDs
Après une connexion, un site attribue généralement un identifiant de session.
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?
S’il est prévisible, un pirate peut essayer de le deviner.
Ce module montre pourquoi les identifiants doivent être générés aléatoirement avec des algorithmes robustes.
👉 Tutoriel complémentaire : Sécuriser une session PHP
XSS (DOM)
Dans cette variante, le code JavaScript s’exécute directement dans le navigateur.

- Le serveur n’est pas responsable.
Un simple paramètre d’URL peut parfois modifier le comportement d’une page si le JavaScript fait confiance aux données reçues.
Vous comprendrez pourquoi les développeurs doivent également sécuriser leur code côté client.
👉 DalFox : Scan de failles XSS
XSS (Reflected)
L’utilisateur saisit une donnée.
Le serveur la renvoie immédiatement dans la page.
Si elle n’est pas correctement filtrée, un script JavaScript peut être exécuté.
Exemple :
<script>alert("Bonjour");</script>
Ce type d’attaque sert souvent à voler des cookies ou à tromper les utilisateurs.
XSS (Stored)
Contrairement au XSS réfléchi, le code malveillant est enregistré dans la base de données.
Par exemple, un commentaire peut contenir :
<script>alert("Test");</script>
Chaque visiteur affichant ce commentaire exécutera automatiquement le script.
- C’est généralement la variante la plus dangereuse.
CSP Bypass
La Content Security Policy (CSP) limite les scripts pouvant être exécutés sur une page.

Ce module montre que certaines politiques mal configurées peuvent malgré tout être contournées.
Vous apprendrez ainsi que la sécurité dépend autant de la configuration que de la technologie utilisée.
👉 Tutoriel complémentaire : CSP, Content Security Policy
JavaScript Attacks
Ce module rassemble plusieurs attaques reposant principalement sur JavaScript.
Vous y découvrirez notamment comment un script peut manipuler une page, modifier son comportement ou récupérer certaines informations lorsque le code est mal conçu.
L’objectif est surtout de comprendre les erreurs fréquentes commises côté navigateur.
Authorisation Bypass
Être connecté ne signifie pas forcément avoir tous les droits.
Ce module montre comment certaines applications vérifient mal les autorisations.
Un simple changement d’URL peut parfois permettre d’accéder à une page réservée aux administrateurs.
Vous apprendrez pourquoi les contrôles doivent toujours être réalisés côté serveur.
Open HTTP Redirect
Certaines applications redirigent automatiquement leurs utilisateurs.
Si cette redirection n’est pas contrôlée, un pirate peut envoyer une victime vers un faux site.
Exemple :
https://monsite.fr/redirect?url=https://faux-site.com
La victime pense rester sur le site légitime alors qu’elle est redirigée ailleurs.
Cryptography
Ce module aborde les bases de la cryptographie.
Vous y découvrirez notamment :
- la différence entre chiffrement et hachage
- pourquoi les mots de passe ne doivent jamais être stockés en clair
- l’importance des algorithmes modernes
Il constitue une excellente introduction avant d’aller plus loin dans la sécurité des applications.
👉 Introduction à la cryptographie
API
Les API permettent aux applications de communiquer entre elles.
Ce module présente les erreurs de sécurité les plus fréquentes :
- absence d’authentification
- contrôle d’accès insuffisant
- fuite de données
- validation insuffisante des paramètres
Aujourd’hui, sécuriser une API est devenu aussi important que sécuriser un site web classique.
Quel parcours suivre lorsqu’on débute ?
L’une des erreurs les plus fréquentes consiste à choisir les modules au hasard. Pourtant, certaines vulnérabilités sont beaucoup plus simples à comprendre que d’autres.
Voici un ordre de progression conseillé.
| Étape | Module DVWA | Pourquoi commencer par celui-ci ? |
|---|---|---|
| 1 | Brute Force | Comprendre l’authentification et les mots de passe. |
| 2 | SQL Injection | Découvrir la communication avec une base de données. |
| 3 | SQL Injection (Blind) | Apprendre à exploiter une faille sans réponse visible. |
| 4 | XSS (Reflected) | Comprendre les bases des attaques JavaScript. |
| 5 | XSS (Stored) | Voir les conséquences d’un script persistant. |
| 6 | XSS (DOM) | Découvrir les vulnérabilités côté navigateur. |
| 7 | CSRF | Comprendre les actions réalisées à l’insu de l’utilisateur. |
| 8 | File Upload | Découvrir les risques liés aux fichiers envoyés. |
| 9 | File Inclusion | Comprendre le chargement non sécurisé de fichiers. |
| 10 | Command Injection | Manipuler les commandes système en toute sécurité. |
| 11 | Weak Session IDs | Comprendre la gestion des sessions. |
| 12 | Authorisation Bypass | Étudier les erreurs de contrôle d’accès. |
| 13 | Open HTTP Redirect | Découvrir les redirections dangereuses. |
| 14 | Insecure CAPTCHA | Comprendre les limites des CAPTCHA. |
| 15 | CSP Bypass | Approfondir la sécurité du navigateur. |
| 16 | JavaScript Attacks | Consolider les notions JavaScript. |
| 17 | Cryptography | Découvrir les bases du chiffrement et du hachage. |
| 18 | API | Terminer par la sécurisation des interfaces modernes. |
Ce parcours vous permet de construire vos connaissances progressivement. Chaque module DVWA s’appuie en partie sur les notions apprises dans les précédents.
Pour résumer :

Quelle difficulté choisir dans DVWA lorsque l’on débute ?
Commencez toujours avec le niveau Low. Vous pourrez ainsi comprendre le fonctionnement de chaque vulnérabilité sans être bloqué par des protections supplémentaires. Une fois les bases acquises, augmentez progressivement la difficulté vers Medium, High puis Impossible.
Faut-il connaître le développement web avant d’utiliser les modules DVWA ?
Quelques notions de HTML, PHP, SQL ou JavaScript peuvent aider, mais elles ne sont pas indispensables pour débuter. DVWA est justement conçu pour apprendre progressivement le lien entre le code d’une application et les vulnérabilités qu’elle peut contenir.
Dans quel ordre faut-il étudier les modules DVWA ?
Il est recommandé de commencer par les modules les plus accessibles, comme Brute Force, SQL Injection et XSS, avant de passer à des sujets plus techniques tels que Command Injection, Cryptography ou les API. Cette progression permet de construire des bases solides sans brûler les étapes.
Les grandes familles de failles web
Injection SQL, XSS, CSRF, failles d’authentification, erreurs de configuration… Comprendre les principales vulnérabilités web avec des explications simples, des exemples concrets et une approche accessible aux débutants.
Explorer le guide completLes modules de DVWA ne sont pas de simples exercices indépendants. Ensemble, ils couvrent les principales familles de vulnérabilités que rencontrent quotidiennement les développeurs et les pentesters.
En suivant un parcours progressif, vous assimilerez beaucoup plus facilement les mécanismes de chaque faille, leurs conséquences et les bonnes pratiques pour les éviter. Une fois ces bases acquises, vous pourrez augmenter le niveau de difficulté de DVWA et commencer à vous confronter à des scénarios beaucoup plus proches des applications réelles.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
