Les applications Web délibérément vulnérables pour apprendre le pentesting et la cybersécurité

Les applications Web délibérément vulnérables, également appelées Deliberately Vulnerable Web Applications, sont des applications spécialement développées pour permettre aux étudiants, développeurs et professionnels de la cybersécurité de s'entraîner à la recherche et à l'exploitation des vulnérabilités informatiques. Elles reproduisent des failles de sécurité réelles dans des environnements contrôlés afin de faciliter l'apprentissage du pentesting, de l'ethical hacking et de la sécurité des applications Web.

Ces laboratoires permettent notamment d'étudier les attaques par injection SQL, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), injection de commandes, brute force, téléversement de fichiers dangereux et les problèmes d'authentification ou de contrôle d'accès.

Dans ce tutoriel, nous allons découvrir les principales applications volontairement vulnérables, leurs technologies, leurs caractéristiques, leurs domaines d'application ainsi que les méthodes permettant de les utiliser dans un laboratoire de cybersécurité composé de Kali Linux, Windows, VirtualBox et XAMPP.

1. Les applications Web volontairement vulnérables : présentation

1.1. Définition

Une application Web volontairement vulnérable est un logiciel contenant intentionnellement des défauts de sécurité. Contrairement aux applications classiques, ces vulnérabilités sont introduites à des fins pédagogiques pour permettre aux utilisateurs de les découvrir, de comprendre leur fonctionnement et d'apprendre les méthodes permettant de les corriger.

Ces applications peuvent prendre différentes formes : sites de commerce électronique, banques en ligne fictives, systèmes de connexion, applications de gestion, services Web, interfaces API ou plateformes d'apprentissage interactives.

1.2. Objectifs pédagogiques

  • Comprendre les principales vulnérabilités des applications Web.
  • Apprendre à utiliser les outils de pentesting comme Nmap, Burp Suite et OWASP ZAP.
  • Découvrir les techniques d'identification des failles de sécurité.
  • Étudier les injections SQL et les faiblesses d'authentification.
  • Tester les mécanismes de contrôle d'accès.
  • Comprendre les risques liés aux mauvaises configurations.
  • Apprendre à sécuriser les applications PHP, Python, Django, Java et JavaScript.
  • Développer une méthodologie professionnelle de test d'intrusion.

1.3. Annuaire OWASP des applications vulnérables

L'OWASP propose un annuaire appelé Vulnerable Web Applications Directory (VWAD). Il regroupe de nombreux projets pédagogiques consacrés à la sécurité des applications Web.

Vous pouvez consulter cet annuaire à l'adresse suivante : https://vwad.owasp.org/.

Important : les applications présentées dans ce cours doivent être utilisées uniquement sur des machines personnelles, des environnements de laboratoire isolés ou des systèmes pour lesquels une autorisation explicite a été accordée.

2. Les applications généralistes similaires à DVWA

Les applications généralistes constituent le meilleur point de départ pour apprendre le pentesting Web. Elles regroupent plusieurs catégories de vulnérabilités dans une seule application et permettent de progresser depuis les attaques élémentaires jusqu'aux techniques plus avancées.

N°ApplicationDescriptionTechnologie
1DVWADamn Vulnerable Web Application. Laboratoire comportant des injections SQL, XSS, CSRF, brute force, injection de commandes et téléversement de fichiers.PHP / MySQL
2OWASP Juice ShopSimulation de boutique électronique vulnérable proposant de nombreux défis de sécurité.Node.js / Angular
3OWASP WebGoatApplication pédagogique organisée en leçons interactives pour apprendre les vulnérabilités Web.Java
4bWAPPBuggy Web Application. Laboratoire proposant un grand nombre de vulnérabilités et différents niveaux de difficulté.PHP / MySQL
5OWASP Mutillidae IIApplication vulnérable permettant d'étudier les risques de sécurité du référentiel OWASP.PHP / MySQL
6XVWAXtreme Vulnerable Web Application. Laboratoire pour les injections, les inclusions de fichiers et les failles de sécurité Web.PHP / MySQL
7OWASP Security ShepherdPlateforme proposant des exercices progressifs et des défis de sécurité.Java
8OWASP BricksApplication pédagogique particulièrement intéressante pour l'étude des injections SQL.PHP / MySQL
9WackoPickoApplication vulnérable utilisée notamment pour évaluer les scanners de sécurité.PHP / MySQL
10OWASP Broken Web ApplicationsEnvironnement regroupant plusieurs applications vulnérables pour les laboratoires de sécurité.Machine virtuelle
11Google GruyereApplication pédagogique pour découvrir les vulnérabilités XSS, CSRF et les défauts de sécurité Web.Application Web
12Altoro Mutual / AltoroJSimulation d'une banque en ligne vulnérable permettant d'étudier les problèmes d'authentification et de sécurité bancaire.Java
13PeruggiaApplication volontairement vulnérable utilisée pour l'entraînement et l'évaluation des outils de sécurité.PHP
14HackxorEnvironnement de formation permettant d'étudier plusieurs catégories de failles Web.Application Web
15OWASP VulnerableAppApplication destinée notamment aux tests des outils d'analyse de vulnérabilités.Java / Spring Boot

2.1. DVWA : Damn Vulnerable Web Application

DVWA est l'une des applications les plus connues pour apprendre les techniques de piratage éthique. Elle propose plusieurs niveaux de sécurité, notamment Low, Medium, High et Impossible, permettant de comparer les comportements d'une application vulnérable et ceux d'une application mieux protégée.

Principales vulnérabilités : SQL Injection, Blind SQL Injection, XSS, CSRF, Command Injection, File Inclusion, File Upload et Brute Force.

Site du projet : https://github.com/digininja/DVWA.

2.2. OWASP Juice Shop

OWASP Juice Shop simule une boutique en ligne moderne. Cette application permet d'étudier les vulnérabilités rencontrées dans les sites de commerce électronique, notamment les faiblesses d'authentification, les injections, les problèmes de contrôle d'accès et les erreurs de logique métier.

Site officiel : https://owasp.org/www-project-juice-shop/.

2.3. OWASP WebGoat

WebGoat est une application pédagogique Java qui propose des leçons structurées autour de différentes vulnérabilités. Elle permet non seulement d'observer les failles, mais également de comprendre les mécanismes de protection correspondants.

Site officiel : https://owasp.org/www-project-webgoat/.

2.4. OWASP Mutillidae II

Mutillidae II constitue une excellente alternative à DVWA. Cette application PHP/MySQL permet d'étudier les injections SQL, les attaques XSS, les problèmes de sessions, les vulnérabilités d'authentification et plusieurs autres risques Web.

Code source : https://github.com/webpwnized/mutillidae.

3. Les applications vulnérables PHP et MySQL

Les applications développées en PHP et utilisant une base de données MySQL ou MariaDB sont particulièrement intéressantes pour les utilisateurs disposant de XAMPP. Elles permettent d'étudier les failles côté serveur, les injections SQL, les mécanismes de connexion et les erreurs de traitement des données.

ApplicationDomaines étudiésEnvironnement
DVWAInjections SQL, XSS, CSRF, authentification, injection de commandes.XAMPP / PHP / MySQL
Mutillidae IIOWASP Top 10, sessions, authentification et injections.PHP / MySQL
bWAPPNombreuses vulnérabilités Web et plusieurs niveaux de difficulté.PHP / MySQL
XVWASQL Injection, XSS, LFI, téléversement de fichiers.PHP / MySQL
OWASP BricksInjection SQL et autres failles Web.PHP / MySQL
SQLi-LabsInjections SQL classiques, blind SQL Injection et différentes techniques d'exploitation.PHP / MySQL
DVWSVulnérabilités des services Web.PHP
CryptOMGProblèmes de cryptographie et de protection des données.PHP / MySQL
Butterfly Security ProjectFailles Web diverses et tests de sécurité.PHP / MySQL
GameOverEntraînement à différentes vulnérabilités Web.Environnement de laboratoire
CVWAVulnérabilités Web courantes.PHP / Docker
DIWAApplication volontairement non sécurisée.PHP / Docker

3.1. Pourquoi privilégier PHP/MySQL pour débuter ?

Le principal avantage de ces applications est leur simplicité d'installation dans un environnement local. Avec XAMPP, il est possible d'utiliser Apache, PHP et MariaDB sur une seule machine Windows, puis de tester les applications depuis une machine virtuelle Kali Linux.

Cette architecture permet également d'étudier les vulnérabilités directement dans le code source PHP, notamment les requêtes SQL non paramétrées, les entrées utilisateur insuffisamment validées et les mauvaises pratiques de gestion des sessions.

4. Les applications vulnérables Python, Django et Flask

Le langage Python est largement utilisé dans le développement backend, l'automatisation et la cybersécurité. Les frameworks Django et Flask permettent de créer des applications Web dont la sécurité dépend notamment de la validation des données, des permissions, de la configuration et de l'utilisation correcte des bibliothèques.

ApplicationDescriptionTechnologie
DjangoGoatLaboratoire pédagogique consacré aux vulnérabilités des applications Django.Python / Django
DjanGoatApplication volontairement vulnérable pour l'apprentissage de la sécurité Django.Python / Django
PyGoatApplication Python conçue pour étudier les risques de sécurité Web.Python
DSVWDamn Small Vulnerable Web, petit serveur Web vulnérable destiné à l'entraînement.Python
Vulnerable PythonLaboratoire d'apprentissage des vulnérabilités Web.Python / Flask
WattzGOATApplication pédagogique proposant des défis de sécurité.Python / Flask
BugGPTLaboratoire consacré à la sécurité des applications intégrant l'intelligence artificielle.Python / Flask
SecDevLabsCollection de laboratoires de sécurité utilisant plusieurs technologies.Python / PHP / Node.js

4.1. Intérêt de ces applications pour les développeurs Django

Un développeur maîtrisant Python et Django peut utiliser ces laboratoires pour comprendre les risques liés aux vues, aux formulaires, aux permissions, aux sessions et aux requêtes SQL personnalisées.

Il peut également apprendre à sécuriser les applications en utilisant les fonctionnalités intégrées de Django, comme la protection CSRF, l'ORM, les mécanismes d'authentification et les contrôles d'autorisation.

5. Les applications vulnérables JavaScript et Node.js

Les applications Web modernes reposent fréquemment sur JavaScript, Node.js, Express, React ou Angular. Ces technologies présentent des problématiques spécifiques concernant la sécurité des API, la gestion des jetons, les dépendances logicielles et les contrôles d'accès.

ApplicationDescription
OWASP Juice ShopBoutique électronique moderne vulnérable développée avec Node.js et Angular.
OWASP NodeGoatApplication Node.js/MongoDB pour apprendre les risques de sécurité Web.
DVWS-NodeLaboratoire de services Web vulnérables utilisant Node.js.
Extreme Vulnerable Node ApplicationApplication Node.js/Express/MongoDB présentant plusieurs vulnérabilités.
Node API GoatApplication pédagogique consacrée à la sécurité des API Node.js.
Broken CrystalsApplication moderne permettant de tester les API, GraphQL et différents mécanismes de sécurité.
GoofApplication Node.js utilisée notamment pour étudier les dépendances vulnérables.
WebSocket GOATLaboratoire consacré à la sécurité des communications WebSocket.

5.1. OWASP NodeGoat

OWASP NodeGoat permet de découvrir les mauvaises pratiques de développement dans les applications Node.js. Il est particulièrement intéressant pour comprendre les injections, les faiblesses de configuration et les problèmes de contrôle d'accès.

Code source : https://github.com/OWASP/NodeGoat.

6. Les laboratoires spécialisés dans les API et Web Services

Les API REST, GraphQL et les Web Services sont devenus des composants essentiels des applications modernes. Leur sécurité repose sur l'authentification, les autorisations, la validation des entrées, la protection des données et la gestion correcte des ressources.

ApplicationDescription
OWASP crAPICompletely Ridiculous API. Laboratoire permettant d'étudier les vulnérabilités des API et les défauts de logique métier.
VAmPIVulnerable API. Application REST volontairement vulnérable pour apprendre le pentesting des API.
DVWSDamn Vulnerable Web Services. Laboratoire de sécurité des services Web.
DVWS-NodeServices Web vulnérables développés avec Node.js.
REST API GoatExercices pratiques consacrés aux vulnérabilités des API REST.
PixiApplication pédagogique avec une API documentée au moyen d'OpenAPI/Swagger.
Broken CrystalsLaboratoire de sécurité des applications modernes et des API GraphQL.
Generic UniversityLaboratoire utilisant notamment Laravel, MySQL et GraphQL.
VulnerableApp4APISecurityApplication .NET destinée à l'étude des vulnérabilités API.
c{api}talLaboratoire basé sur FastAPI, React et PostgreSQL.

6.1. Les principales vulnérabilités API

  • BOLA (Broken Object Level Authorization) : accès non autorisé aux objets appartenant à d'autres utilisateurs.
  • Broken Authentication : faiblesses dans les mécanismes d'identification et de gestion des sessions.
  • Broken Function Level Authorization : accès à des fonctionnalités normalement réservées à certains utilisateurs.
  • Security Misconfiguration : mauvaise configuration des services et des composants.
  • Injection : manipulation des données envoyées aux services backend.
  • Unrestricted Resource Consumption : consommation excessive de ressources lorsque les limitations sont insuffisantes.

Projet OWASP crAPI : https://github.com/OWASP/crAPI.

7. Les applications classées selon les types de vulnérabilités

Le choix d'un laboratoire dépend également de la vulnérabilité que l'on souhaite étudier. Certaines applications sont généralistes, tandis que d'autres sont particulièrement adaptées à une catégorie précise d'attaque.

Type de vulnérabilitéApplications recommandées
SQL InjectionSQLi-Labs, DVWA, OWASP Bricks, Mutillidae II.
Cross-Site Scripting (XSS)XSS Game, Google Gruyere, Juice Shop, DVWA.
Command InjectionDVWA, bWAPP, Mutillidae II.
File UploadDVWA, bWAPP, XVWA.
CSRFWebGoat, DVWA, Juice Shop.
Authentification et sessionsWebGoat, Juice Shop, AltoroJ.
NoSQL InjectionNoSQL Injection Lab, NIVA.
WebSocketDVWS, WebSocket GOAT.
OAuthWayfarer.
API SecuritycrAPI, VAmPI, REST API Goat.
Sécurité IA et LLMAI-Goat, Gandalf, PwnzzAI.
Vulnérabilités JavaWebGoat, OWASP VulnerableApp, EasyBuggy.

7.1. Les injections SQL

Une injection SQL apparaît lorsqu'une application construit des requêtes SQL à partir de données non fiables sans protection adaptée. Les laboratoires comme SQLi-Labs, DVWA et OWASP Bricks permettent d'étudier cette vulnérabilité et de comprendre l'importance des requêtes préparées.

7.2. Les attaques XSS

Les vulnérabilités Cross-Site Scripting permettent à un attaquant de faire interpréter du contenu actif non fiable dans le navigateur d'un utilisateur. Les laboratoires Juice Shop, Google Gruyere et DVWA permettent de découvrir les différents contextes d'injection et les protections adaptées.

7.3. Les injections de commandes

Une injection de commandes peut apparaître lorsqu'une application transmet des données utilisateur à un interpréteur de commandes système sans validation appropriée. Les applications DVWA, bWAPP et Mutillidae II proposent des exercices pour comprendre ce risque.

8. Les plateformes de pentesting accessibles en ligne

Il n'est pas toujours nécessaire d'installer une application vulnérable sur son ordinateur. Plusieurs plateformes proposent des laboratoires accessibles directement sur Internet, des machines virtuelles, des exercices interactifs ou des environnements de type Capture The Flag (CTF).

PlateformeDescriptionAdresse
PortSwigger Web Security AcademyLaboratoires interactifs consacrés aux injections SQL, XSS, SSRF, CSRF et autres vulnérabilités Web.Site officiel
TryHackMeParcours guidés pour apprendre les réseaux, Linux, le pentesting et la cybersécurité.Site officiel
Hack The BoxMachines et applications vulnérables pour l'entraînement pratique.Site officiel
Root MeDéfis de sécurité Web, réseaux, cryptographie et exploitation.Site officiel
PentesterLabExercices pratiques consacrés à la sécurité des applications Web.Site officiel
Hack This SiteDéfis pédagogiques autour de la sécurité Web et de la programmation.Site officiel
OverTheWireJeux pédagogiques consacrés à Linux et à la sécurité informatique.Site officiel
VulnHubMachines virtuelles volontairement vulnérables à utiliser dans un laboratoire local.Site officiel

8.1. PortSwigger Web Security Academy

PortSwigger Web Security Academy est particulièrement adaptée aux personnes souhaitant approfondir le pentesting Web. Elle propose des cours théoriques accompagnés de laboratoires pratiques et permet de découvrir progressivement des techniques avancées de recherche de vulnérabilités.

8.2. TryHackMe et Hack The Box

TryHackMe propose des parcours guidés adaptés aux débutants, tandis que Hack The Box offre des environnements permettant de développer davantage d'autonomie dans les tests d'intrusion. Certaines ressources sont gratuites et d'autres nécessitent un abonnement.

9. Les meilleures applications pour débuter en pentesting

Pour apprendre efficacement la cybersécurité Web, il est préférable de suivre une progression pédagogique structurée. Les premières applications doivent permettre de comprendre les mécanismes des vulnérabilités avant d'aborder des architectures plus complexes.

OrdreApplicationNiveau conseilléObjectif principal
1DVWADébutantComprendre les vulnérabilités Web classiques.
2SQLi-LabsDébutant / IntermédiaireApprofondir les injections SQL.
3Mutillidae IIDébutant / IntermédiaireÉtudier les risques OWASP.
4bWAPPIntermédiaireExplorer un grand nombre de vulnérabilités.
5XVWAIntermédiaireConsolider les techniques de pentesting Web.
6WebGoatIntermédiaireComprendre les failles et leurs corrections.
7Juice ShopIntermédiaireTester une application Web moderne.
8DjangoGoatIntermédiaireAuditer une application Python/Django.
9crAPIIntermédiaire / AvancéApprendre le pentesting des API.
10PortSwigger AcademyTous niveauxApprofondir les techniques de sécurité Web.

9.1. Les cinq applications prioritaires

  1. DVWA : idéale pour comprendre les premières vulnérabilités Web.
  2. Mutillidae II : intéressante pour approfondir les risques OWASP dans un environnement PHP/MySQL.
  3. OWASP Juice Shop : permet de découvrir les vulnérabilités des applications modernes.
  4. OWASP WebGoat : propose une approche pédagogique structurée avec des leçons interactives.
  5. OWASP crAPI : particulièrement adaptée à l'apprentissage de la sécurité des API REST.

10. Création d'un laboratoire Kali Linux et Windows XAMPP

Il est possible de construire un laboratoire de pentesting complet avec un ordinateur Windows, VirtualBox, une machine virtuelle Kali Linux et plusieurs applications volontairement vulnérables installées sur XAMPP ou dans des conteneurs Docker.

10.1. Architecture du laboratoire

L'architecture proposée utilise deux environnements : une machine Kali Linux jouant le rôle de machine de test et une machine Windows hébergeant les applications vulnérables. Les deux machines communiquent à travers un réseau privé VirtualBox de type Host-Only.

MachineRôleLogiciels
WindowsMachine cible hébergeant les applications vulnérables.XAMPP, Apache, MariaDB, PHP et éventuellement Docker.
Kali LinuxMachine utilisée pour effectuer les tests d'intrusion.Nmap, Burp Suite, Firefox, curl et autres outils de sécurité.
VirtualBox Host-OnlyRéseau privé permettant la communication entre Kali Linux et Windows.Adaptateur réseau virtuel.

10.2. Organisation des applications sur Windows

Dans un environnement XAMPP, chaque application PHP compatible peut être installée dans un sous-dossier du répertoire htdocs. Les applications peuvent ainsi être accessibles à travers des URL différentes sur le même serveur Apache.

Voici un exemple d'organisation possible des dossiers sur Windows :

Output : cette organisation permet d'héberger plusieurs applications dans des dossiers séparés. Chaque application nécessite toutefois sa propre configuration, notamment pour la connexion à la base de données et les éventuelles dépendances.

Pour les applications compatibles avec une installation classique sous XAMPP, les adresses locales pourraient prendre la forme suivante :

Output : ces adresses permettent d'accéder aux applications depuis le navigateur Windows, à condition que les dossiers et les applications soient correctement installés. Les chemins réels peuvent varier selon la version et la configuration de chaque projet.

10.3. Accès aux applications depuis Kali Linux

Supposons que l'interface réseau Host-Only de Windows possède l'adresse IP 192.168.56.1. Depuis Kali Linux, les applications Web peuvent être accessibles à travers cette adresse, à condition qu'Apache écoute sur l'interface correspondante et que le pare-feu Windows autorise les connexions nécessaires.

Les URL de test depuis Firefox sur Kali Linux peuvent alors être les suivantes :

Output : chaque URL doit afficher l'application correspondante lorsque celle-ci est installée et accessible. Une erreur HTTP 404 indique généralement que le chemin demandé n'existe pas, tandis qu'un refus de connexion peut signaler un problème de serveur, de port ou de pare-feu.

10.4. Vérification du serveur Web avec Nmap

Depuis le terminal de Kali Linux, l'outil Nmap permet de vérifier si le serveur Web Windows accepte les connexions sur les ports HTTP et HTTPS. La commande suivante examine uniquement les ports 80 et 443 de la machine cible du laboratoire.

Output possible :

Ce résultat indique que les ports 80 et 443 sont ouverts. Il ne prouve pas à lui seul qu'une application particulière est installée ou vulnérable. Pour cela, il faut vérifier les URL et analyser les fonctionnalités des applications.

10.5. Vérification HTTP depuis Kali Linux

La commande curl permet de demander les en-têtes HTTP d'une application Web. Elle est utile pour vérifier la réponse du serveur sans utiliser un navigateur graphique.

Output possible :

Le code 200 OK indique que la ressource demandée est accessible. D'autres réponses sont possibles, notamment 302 Found lorsqu'une redirection est effectuée vers une page de connexion, ou 404 Not Found lorsque la ressource n'existe pas.

10.6. Mesures de sécurité du laboratoire

Les applications volontairement vulnérables ne doivent jamais être installées sur un serveur de production ou exposées directement à Internet. Leur objectif est de reproduire des failles dans un environnement contrôlé.

  • Utiliser un réseau Host-Only ou un réseau virtuel isolé pour les communications entre les machines de test.
  • Ne pas exposer les ports des applications vulnérables sur Internet.
  • Éviter d'installer ces applications sur le même serveur que des sites personnels ou professionnels.
  • Utiliser des bases de données et des identifiants de test.
  • Effectuer des sauvegardes ou des instantanés des machines virtuelles.
  • Supprimer les applications vulnérables lorsqu'elles ne sont plus nécessaires.
  • Vérifier les configurations réseau et les règles du pare-feu avant chaque séance.

Remarque : l'utilisation de Windows comme machine cible est pratique pour un premier laboratoire, mais une machine virtuelle cible dédiée offre une meilleure isolation et limite les risques pour le système principal.

11. À retenir !

Les applications Web délibérément vulnérables constituent des outils essentiels pour apprendre le pentesting et la cybersécurité Web. Elles permettent de comprendre concrètement les vulnérabilités, de développer des compétences pratiques et d'apprendre les méthodes de sécurisation des applications.

Pour les débutants, DVWA, Mutillidae II, bWAPP et SQLi-Labs représentent d'excellents environnements d'apprentissage. Pour les applications modernes, OWASP Juice Shop, WebGoat et OWASP crAPI permettent d'approfondir la sécurité des architectures Web et des API.

Les développeurs Python peuvent également étudier des applications vulnérables développées avec Django et Flask afin de mieux comprendre les risques liés au développement backend.

Enfin, un laboratoire composé de Kali Linux, VirtualBox, Windows et XAMPP permet de réaliser de nombreux exercices pratiques sans nécessiter de matériel réseau supplémentaire. L'essentiel est de conserver un environnement isolé et de pratiquer exclusivement sur des applications volontairement vulnérables ou des systèmes explicitement autorisés.

 




Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


loader-image
Le prix initial était : € 11,00.Le prix actuel est : € 10,00.
Le prix initial était : € 6,00.Le prix actuel est : € 5,00.



Leave a Reply

Your email address will not be published. Required fields are marked *