====== Activité : Récupération du fichier système /etc/passwd ====== ===== Objectif ===== Ce défi a pour objectif d’afficher le contenu du fichier /etc/passwd qui contient la liste de tous les utilisateurs systèmes présents sur le serveur. ===== À vous de jouer ===== ==== Travail à faire 1 - Mise en place de l’attaque XXE ==== Le but de cette première série de questions est de mettre en œuvre l’attaque permettant d’afficher le fichier contenant tous les utilisateurs sur le serveur cible. * **Q1**. Commencer par préparer votre environnement de travail en démarrant le serveur Mutillidae ainsi que la machine cliente. Vérifier que vos deux machines communiquent à l’aide de la commande ping. Puis, positionner le niveau de sécurité de Mutillidae à 0. * **Q2**. À l’aide du dossier documentaire ci-dessous, réaliser le défi permettant d’afficher le fichier confidentiel contenant la liste des utilisateurs /etc/passwd. Vous prendrez soin de réaliser vos propres captures d’écrans dans votre compte rendu de TP. ==== Travail à faire 2 - Nouvelle tentative en mode sécurisé et analyse du code source ==== Le but de cette deuxième partie est de tester à nouveau l’attaque après activation du codage sécurisé et de comprendre l’encodage mis en place. Test du niveau de sécurité 1 (Client-Side Security) : * Q1. Est-ce que le niveau de sécurité 1 permet d’éviter l’attaque XXE ? Si oui, est-ce dû à une protection spécifique contre le XXE ? * Q2. Dans la page xml-validator.php, expliquer le rôle des blocs de code suivants : - {{:cyber:owasp5:owasp-a11a.png?200|}} - {{:cyber:owasp5:owasp-a11b.png?400|}} Remarques : - l’affichage du code source Javascript peut s’effectuer en utilisant la combinaison de touches CTRL ° U car il s’agit d’un code coté client ; - une variante de cette question peut être de demander aux étudiants de rechercher le bloc de code effectuant la vérification sur les caractères suspects. ==== Test du niveau de sécurité 5 (Secure) : ==== * **Q3**. Est-ce que le niveau de sécurité 5 permet d’éviter l’attaque XXE ? * **Q4**. Afficher le code source de la page xml-validator.php sur le serveur à l’aide de la commande more /var/www/html/mutillidae/xml-validator.php * **Q5**. Expliquer le rôle d’une expression régulière (motif). * **Q6**. Toujours dans la même page, expliquer le rôle de la fonction preg_match. * **Q7**. Expliquer le rôle de la fonction libxml_disable_entity_loader. Qu’en est-il de cette fonction depuis PHP8.0 ? * **Q8**. Conclure sur la méthode de codage sécurisée utilisée pour empêcher l’attaque XXE. {{ :cyber:owasp5:documentation.pdf |Dossier documentaire}}