Introduction
Dans l'énumération web, des outils comme Gobuster sont utilisés pour découvrir des répertoires et fichiers cachés sur les serveurs web. Cependant, la sortie brute peut être écrasante, contenant de nombreuses entrées qui ne sont pas immédiatement pertinentes. Filtrer ces résultats en fonction des codes d'état HTTP est une technique puissante pour concentrer votre attention sur des types de réponses spécifiques, tels que les pages réussies (200 OK), les redirections (301/302) ou les ressources interdites (403).
Ce laboratoire vous guidera dans l'utilisation des capacités de filtrage de Gobuster pour analyser efficacement les résultats de scan. Vous apprendrez à identifier les codes d'état HTTP courants, à effectuer un scan Gobuster de base, puis à appliquer des filtres pour n'afficher que les codes d'état qui vous intéressent. Cette compétence est essentielle pour toute personne impliquée dans la sécurité web ou les tests d'intrusion, car elle permet d'identifier rapidement les informations exploitables.
Comprendre les codes d'état HTTP courants (200, 301, 403)
Dans cette étape, vous apprendrez les codes d'état HTTP les plus courants que l'on rencontre fréquemment lors de l'énumération web. Comprendre ces codes est fondamental pour interpréter la sortie de Gobuster et filtrer efficacement les résultats.
- 200 OK : Ce code d'état indique que la requête a réussi. Le serveur a traité la requête avec succès et la ressource demandée (par exemple, une page web, une image) est retournée. Dans les scans Gobuster, un code d'état 200 signifie généralement qu'une page ou un répertoire valide et accessible a été trouvé.
- 301 Moved Permanently : Ce code d'état signifie que la ressource demandée a été déplacée de manière permanente vers une nouvelle URL. Le navigateur (ou Gobuster) devrait automatiquement rediriger vers le nouvel emplacement. Bien qu'il ne s'agisse pas d'une erreur, trouver des redirections 301 peut indiquer un contenu ancien ou réorganisé.
- 403 Forbidden : Ce code d'état signifie que le serveur a compris la requête mais refuse de l'autoriser. Cela se produit généralement lorsqu'un utilisateur (ou Gobuster) tente d'accéder à une ressource qui nécessite une authentification ou des permissions spécifiques, mais que le client ne les possède pas. Trouver des codes 403 peut être intéressant car ils peuvent pointer vers des zones sensibles qui sont protégées mais existent toujours.
Pour vous familiariser avec ceux-ci, vous pouvez essayer d'accéder à certains chemins sur notre serveur web factice en utilisant curl.
Tout d'abord, confirmons que le serveur fonctionne en essayant d'accéder à index.html :
curl -I http://localhost:8000/index.html
Vous devriez voir un statut HTTP/1.0 200 OK dans la sortie.
Ensuite, essayez d'accéder à redirect.html pour voir une redirection 301 :
curl -I http://localhost:8000/redirect.html
Vous devriez observer un statut HTTP/1.0 301 Moved Permanently.
Enfin, tentez d'accéder à admin.html pour voir une réponse HTTP/1.0 403 Forbidden :
curl -I http://localhost:8000/admin.html
Cette commande devrait retourner un statut HTTP/1.0 403 Forbidden.
Ces commandes curl vous aident à vérifier manuellement comment différents chemins sur le serveur répondent avec des codes d'état HTTP spécifiques, ce que Gobuster automatisera.
Lancer un scan pour voir tous les codes d'état
Dans cette étape, vous effectuerez un scan Gobuster de base contre le serveur web factice sans aucun filtrage de code d'état. Cela vous permettra de voir la sortie par défaut, qui inclut tous les chemins découverts ainsi que leurs codes d'état HTTP correspondants. Ceci sert de référence avant d'appliquer des filtres.
La syntaxe de base pour le brute-force de répertoires avec Gobuster est gobuster dir -u <URL> -w <wordlist>.
-u: Spécifie l'URL cible. Dans notre cas, c'esthttp://localhost:8000.-w: Spécifie le chemin vers le fichier de liste de mots (wordlist). Nous utiliserons le fichierwordlist.txtcréé lors de la configuration.
Exécutez la commande suivante dans votre terminal :
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt
Après avoir exécuté la commande, observez la sortie. Vous devriez voir des lignes similaires à celles-ci, indiquant les chemins découverts et leurs codes d'état :
/index.html (Status: 200)
/secret.html (Status: 200)
/redirect.html (Status: 301)
/admin.html (Status: 403)
Remarquez que Gobuster rapporte tous les codes d'état qu'il rencontre. Dans un scénario réel avec une grande liste de mots, cette sortie peut être très longue et contenir de nombreuses entrées non pertinentes. Les étapes suivantes vous montreront comment affiner cette sortie.
Utiliser le drapeau -s pour afficher uniquement les codes 200 OK et 301 Redirects
Dans cette étape, vous apprendrez à utiliser le drapeau -s (status) dans Gobuster pour filtrer les résultats du scan et afficher uniquement des codes d'état HTTP spécifiques. Ceci est extrêmement utile lorsque vous recherchez des types de réponses particuliers, tels que des pages réussies ou des redirections.
Le drapeau -s vous permet de spécifier une liste de codes d'état séparés par des virgules à inclure dans la sortie. Par exemple, pour voir uniquement les réponses 200 (OK) et 301 (Moved Permanently), vous utiliseriez -s 200,301.
Exécutez la commande suivante :
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -s 200,301
Observez la sortie. Cette fois, vous ne devriez voir que les entrées avec les codes d'état 200 et 301 :
/index.html (Status: 200)
/secret.html (Status: 200)
/redirect.html (Status: 301)
Remarquez que l'entrée /admin.html, qui retournait un statut 403, n'est plus présente dans la sortie. Cela démontre l'efficacité avec laquelle le drapeau -s peut affiner vos résultats, vous permettant de vous concentrer plus facilement sur les découvertes pertinentes.
Lancer un nouveau scan pour trouver les pages interdites (403)
Dans cette étape, vous effectuerez un autre scan filtré, cette fois en recherchant spécifiquement les pages "Forbidden" (interdites), qui retournent un code d'état HTTP 403. L'identification des réponses 403 peut être cruciale en test d'intrusion, car elles indiquent souvent des interfaces administratives protégées, des fichiers sensibles ou des répertoires qui pourraient être vulnérables à des mauvaises configurations ou à des techniques de contournement.
Pour filtrer uniquement les codes d'état 403, vous utiliserez le drapeau -s avec 403 comme argument.
Exécutez la commande suivante :
gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -s 403
Examinez la sortie. Vous ne devriez maintenant voir que l'entrée pour /admin.html, qui a retourné un statut 403 :
/admin.html (Status: 403)
Ce scan ciblé met rapidement en évidence les ressources auxquelles le serveur refuse explicitement l'accès. Bien que ces ressources soient protégées, leur simple existence peut constituer une information précieuse pour des investigations ultérieures. Cela démontre la flexibilité du drapeau -s pour se concentrer sur des types spécifiques de réponses du serveur.
Analyser la sortie filtrée
Dans cette dernière étape, vous analyserez les implications des sorties filtrées que vous avez générées. Comprendre ce que signifient les différents codes d'état dans le contexte d'un scan Gobuster est essentiel pour une énumération web efficace.
Lorsque vous avez filtré pour les codes d'état 200,301, vous avez identifié :
/index.html(200 OK) : C'est la page principale, indiquant une ressource réussie et accessible./secret.html(200 OK) : Celle-ci a également retourné 200, suggérant qu'il s'agit d'une page accessible. Dans un scénario réel, vous examineriez son contenu pour voir si elle contient des informations sensibles./redirect.html(301 Moved Permanently) : Ceci indique une redirection. Vous suivriez généralement la redirection pour voir où elle mène, car elle pourrait pointer vers du contenu mis à jour ou une autre partie de l'application.
Lorsque vous avez filtré pour les codes d'état 403, vous avez identifié :
/admin.html(403 Forbidden) : C'est une découverte cruciale. Une réponse 403 signifie que le serveur connaît l'existence de la ressource mais refuse l'accès. Cela pointe souvent vers des panneaux administratifs, des répertoires sensibles ou des fichiers qui sont intentionnellement protégés. Bien que l'accès direct soit refusé, ce chemin est un excellent candidat pour des investigations plus approfondies, telles que :- Tentatives de contournement : Existe-t-il des techniques de contournement connues pour ce serveur web ou cette application spécifique ?
- Identifiants par défaut : Des identifiants par défaut pourraient-ils permettre l'accès ?
- Analyse de vulnérabilités : Existe-t-il des vulnérabilités qui pourraient conduire à un accès non autorisé ?
En filtrant sélectivement la sortie de Gobuster, vous pouvez rapidement orienter votre investigation vers les pistes les plus prometteuses, gagner du temps et rendre votre processus d'énumération plus efficace et ciblé. Cette compétence est fondamentale pour tout professionnel de la sécurité effectuant des évaluations d'applications web.
Résumé
Dans ce laboratoire, vous avez appris à utiliser efficacement le drapeau -s de Gobuster pour filtrer les résultats des scans en fonction des codes d'état HTTP. Vous avez commencé par comprendre les codes d'état courants tels que 200 (OK), 301 (Moved Permanently) et 403 (Forbidden). Vous avez ensuite effectué un scan Gobuster de base pour voir toutes les réponses, puis appliqué des filtres pour vous concentrer sur des types de résultats spécifiques.
En filtrant pour les codes d'état 200 et 301, vous avez identifié les pages accessibles et les redirections. Plus important encore, en filtrant pour les codes d'état 403, vous avez identifié des ressources potentiellement sensibles ou protégées qui méritent une investigation plus approfondie. Cette approche ciblée rationalise considérablement le processus d'énumération web, vous permettant d'identifier rapidement des informations exploitables lors de tests d'intrusion ou d'évaluations de sécurité. Maîtriser cette technique est une compétence précieuse pour tout professionnel de la cybersécurité.
