Maîtrise des vulnérabilités web

Dans ce cours, vous apprendrez les vulnérabilités web les plus courantes et comment les exploiter. Vous découvrirez les vulnérabilités d'injection SQL, d'inclusion de fichiers, de script intersites (XSS), de téléchargement de fichiers, d'injection de commandes et de traversée de répertoire. Vous apprendrez également à exploiter ces vulnérabilités à l'aide de diverses techniques et outils.

CybersécuritéDéveloppement web

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Maîtrise des vulnérabilités web est un cours guidé pour débutants qui montre comment un traitement non sécurisé des entrées devient une faille exploitable dans une application web. Au fil de huit laboratoires pratiques, vous exécuterez dans Docker des applications PHP volontairement vulnérables, examinerez leur comportement et des extraits de leur code source, puis les testerez depuis Firefox ou le terminal.

Le programme suit plusieurs voies d'attaque distinctes : injection SQL dans des requêtes de base de données, inclusion locale et distante de fichiers, cross-site scripting réfléchi, téléversement de fichiers non sécurisé, injection de commandes du système d'exploitation et injection de code PHP. Chaque exercice relie un motif de code vulnérable à un résultat observable tel que le contournement d'une authentification, l'extraction de données, l'exécution d'un script, l'accès à un fichier ou l'obtention d'un web shell.

Ce que vous apprendrez

À l'issue de ce cours, vous saurez :

  • Lancer des applications volontairement vulnérables avec Docker et interagir avec elles dans Firefox au moyen de paramètres d'URL, de formulaires et de Hackbar
  • Détecter une injection SQL par des erreurs et des tests vrai-faux, distinguer les contextes numériques des chaînes et déterminer le nombre de colonnes d'une requête
  • Utiliser UNION SELECT et information_schema pour déterminer la structure d'une base MySQL, extraire des données et contourner une requête de connexion non sécurisée
  • Distinguer l'inclusion statique de fichiers PHP de celle contrôlée par l'utilisateur et confirmer une inclusion locale ou distante avec des charges maîtrisées
  • Construire des charges XSS réfléchies et contourner des filtres simples sensibles à la casse à l'aide d'autres éléments et gestionnaires d'événements
  • Examiner la validation des téléversements, envoyer une page de test PHP ou un shell de commandes et explorer des contournements facultatifs fondés sur les extensions
  • Exploiter une entrée non sécurisée transmise à une commande du système d'exploitation, exécuter d'autres commandes et établir un reverse shell réservé au laboratoire
  • Sortir d'une chaîne PHP transmise à eval() pour appeler des fonctions, lire des fichiers du serveur, en écrire de nouveaux et créer un web shell simple

À qui s’adresse ce cours

Ce cours s'adresse aux futurs testeurs de sécurité web, aux développeurs, aux participants à des CTF et aux personnes qui débutent en cybersécurité et souhaitent relier, avec un accompagnement, du code PHP vulnérable à des charges de preuve de concept fonctionnelles. Il convient si vous préférez commencer par des expériences dans le navigateur et la modification directe d'URL avant d'adopter un flux complet avec proxy d'interception.

Prérequis : Il est recommandé de connaître les bases du terminal Linux ainsi que les URL, les paramètres de requête, les formulaires HTML et les requêtes web simples. Une initiation à PHP et SQL facilitera la lecture du code source, mais les laboratoires expliquent la syntaxe utile au moment où elle apparaît.

Environnement d’apprentissage : Les laboratoires utilisent des environnements Linux graphiques et isolés de LabEx avec Firefox, un terminal, Docker, des applications web vulnérables locales et un fichier d'extension Hackbar fourni. Certains exercices téléchargent des images Docker publiques et une démonstration d'inclusion distante appelle une charge publique de PentesterLab ; aucun compte tiers n'est demandé par le cours.

Questions fréquentes

Ai-je besoin de Burp Suite ou d'un autre proxy d'interception ?

Non. Les exercices utilisent Firefox, la saisie directe dans les URL et les formulaires, les outils de développement du navigateur, Hackbar et des commandes de terminal. L'interception et la modification du trafic HTTP brut avec Burp Suite ne font pas partie de ce cours.

Toutes les applications vulnérables sont-elles hébergées localement ?

Les applications s'exécutent localement dans des conteneurs Docker au sein du laboratoire. Les commandes de préparation téléchargent des images publiques depuis des registres de conteneurs et l'exercice d'inclusion distante charge une démonstration hébergée publiquement ; cette leçon n'est donc pas entièrement hors ligne.

Quelle différence le cours fait-il entre injection de commandes et injection de code ?

Le laboratoire d'injection de commandes place une entrée non fiable dans une commande système et démontre l'exécution de commandes supplémentaires du système d'exploitation. Celui sur l'injection de code insère l'entrée dans une chaîne PHP transmise à eval(), ce qui permet à des fonctions PHP injectées de lire ou d'écrire des fichiers et de créer un web shell.

Le cours apprend-il à corriger toutes les vulnérabilités ?

Il explique les motifs non sécurisés et présente des contrôles tels que la validation de l'extension, du type MIME et de la taille, mais les travaux pratiques sont surtout consacrés à l'exploitation. La paramétrisation sûre des requêtes, l'encodage systématique des sorties, une architecture de téléversement de production et la validation complète des correctifs nécessitent un apprentissage supplémentaire.

Enseignant

labby
Labby
Labby is the LabEx teacher.