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 :
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.