Énumération HTTP et Traversée de Répertoire

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce laboratoire sur l'énumération de serveurs web et l'accès basique aux fichiers. Dans cet exercice, vous apprendrez les techniques fondamentales de reconnaissance web utilisées pour découvrir et interagir avec les services web.

Dans ce laboratoire, vous simulerez un scénario de reconnaissance web basique. Vous commencerez par effectuer une reconnaissance sur un système cible afin de confirmer sa présence en ligne et d'identifier les services en cours d'exécution. En utilisant l'outil nmap, vous découvrirez un serveur web et énumérerez sa version. Vous utiliserez ensuite la commande curl pour accéder à un fichier drapeau (flag) qui a été placé sur le serveur web.

Une fois terminé, vous comprendrez comment :

  • Vérifier la connectivité réseau à l'aide de ping.
  • Utiliser nmap pour scanner les services web et effectuer une énumération.
  • Comprendre les techniques de reconnaissance web basiques.
  • Utiliser curl pour accéder à des fichiers sur un serveur web et récupérer un drapeau (flag).

Commençons.

Vérifier la Connectivité à la Cible avec Ping

Dans cette étape, vous commencerez par confirmer que le système cible est accessible depuis votre machine. La commande ping est un utilitaire standard pour tester la connectivité réseau. Elle envoie des paquets ICMP Echo Request à un hôte et attend les réponses. C'est la première et la plus basique des étapes dans toute tâche de reconnaissance réseau.

Votre environnement comprend un système cible accessible avec le nom d'hôte target.

Exécutez la commande suivante dans le terminal pour envoyer quatre paquets à la target :

ping -c 4 target

Vous devriez voir une sortie confirmant que quatre paquets ont été envoyés et quatre ont été reçus, indiquant une connexion stable. L'adresse IP peut différer, mais le résultat devrait montrer une perte de paquets de 0 %.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms

La connectivité étant confirmée, vous êtes prêt à passer au scan de la cible.

Scanner les Ports Ouverts avec Nmap

Dans cette étape, vous utiliserez nmap pour scanner la cible à la recherche de ports ouverts et identifier les services qui y tournent. Nmap est un outil puissant pour l'exploration réseau et l'audit de sécurité. Ce scan vous aidera à trouver des points d'entrée potentiels, tels qu'un serveur web.

Nous allons effectuer un scan ciblé sur le port 80, le port standard pour le trafic HTTP. Nous utiliserons également des scripts pour collecter plus d'informations sur le service.

Exécutez la commande nmap suivante dans votre terminal :

nmap -sV -p 80 --script http-enum target

Analysons cette commande :

  • -sV : Active la détection de version, qui tente de déterminer la version du service exécuté sur le port.
  • -p 80 : Spécifie que nous voulons uniquement scanner le port 80.
  • --script http-enum : Exécute un script qui énumère les répertoires et les fichiers sur le serveur web.
  • target : Le nom d'hôte de notre machine cible.

La sortie ressemblera à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds

Les résultats du scan confirment que le port 80/tcp est ouvert et exécute Apache httpd 2.4.41. Ce serveur web héberge des fichiers auxquels nous pouvons accéder à l'étape suivante.

Se Connecter à la Cible via HTTP

Dans cette étape, vous interagirez avec le serveur web en utilisant curl pour accéder aux fichiers. curl est un outil en ligne de commande pour transférer des données avec des URL.

Tout d'abord, effectuons une requête standard à la page principale du serveur web pour voir à quoi elle ressemble.

curl http://target

Le serveur devrait répondre avec le contenu de la page par défaut d'Apache.

<html>
  <body>
    <h1>It works!</h1>
  </body>
</html>

Maintenant, accédons au fichier flag qui a été placé dans le répertoire racine du serveur web. Bien que le fichier soit directement accessible dans cette configuration, démontrons comment vous y accéderiez typiquement :

curl http://target/flag.txt

Cette commande récupérera le fichier flag directement depuis la racine du document du serveur web.

Explorer le Système Cible et Localiser le Flag

Dans cette dernière étape, vous récupérerez et visualiserez le drapeau (flag). La sortie de la commande curl précédente devrait avoir affiché le drapeau directement dans votre terminal.

La sortie attendue de la commande est le contenu du fichier flag :

labex{p4th_tr4v3rs4l_w1zardry}

Si la sortie est longue ou si vous souhaitez l'enregistrer pour plus tard, vous pouvez rediriger la sortie de la commande curl vers un fichier. C'est une pratique courante lorsque l'on traite des fichiers plus volumineux.

Exécutez à nouveau la commande, mais cette fois, enregistrez le résultat dans un fichier nommé flag.txt :

curl http://target/flag.txt > flag.txt

Maintenant, vous pouvez afficher le contenu du fichier téléchargé en utilisant la commande cat :

cat flag.txt

Le terminal affichera le drapeau :

labex{p4th_tr4v3rs4l_w1zardry}

Félicitations ! Vous avez identifié avec succès un serveur web, accédé au fichier flag et capturé le drapeau. Copiez la valeur du drapeau pour terminer le laboratoire.

Résumé

Dans ce laboratoire, vous avez mené à bien un exercice de reconnaissance web de base. Vous avez appris et pratiqué les compétences suivantes :

  • Reconnaissance : Vous avez utilisé ping pour vérifier que la cible était en ligne et accessible.
  • Énumération : Vous avez utilisé nmap avec la détection de version (-sV) et le scripting (--script http-enum) pour identifier un port HTTP ouvert et la version spécifique du serveur web Apache.
  • Accès aux fichiers : Vous avez utilisé curl pour accéder aux fichiers sur le serveur web.
  • Récupération du drapeau : Vous avez réussi à récupérer le fichier flag depuis le serveur web.

Cet exercice démontre des techniques de reconnaissance web de base qui sont fondamentales pour comprendre le fonctionnement des serveurs web et comment interagir avec eux par programmation. Ces compétences sont essentielles pour le développement web, l'administration système et les tests de sécurité.