Les codes de statut HTTP (Hypertext Transfer Protocol) , également appelés «codes de réponse», sont transmis par les serveurs Web à nos navigateurs Web lorsque nous formulons des demandes. Ces codes permettent aux serveurs Web de communiquer les erreurs aux administrateurs de serveurs, aux développeurs Web et aux utilisateurs finaux.

Les codes de statut HTTP sont divisés en plusieurs catégories ou « classes ». Le premier chiffre définit les catégories et les chiffres suivants sont des sous-catégories, spécifiques à différents types de messages d’erreur. Par exemple, les catégories 4xx sont une classe d’erreurs spécifiques aux demandes HTTP qui ne peuvent pas être remplies par le serveur Web. C’est comme essayer de voir une page Web qui n’existe pas. C’est défini comme un statut « 404 introuvable », probablement l’un des codes de statut les plus connus sur Internet.

Les codes d’état sont particulièrement utiles pour les pentesters, car ils nous aident à identifier les parties cassées, mal formées et mal configurées d’un serveur susceptibles de laisser échapper des informations sensibles, ou peuvent permettre une manière exploitable de contrôler certains aspects du serveur.

Selon Wikipedia , vous trouverez ci-dessous une liste des cinq catégories de codes de statut HTTP. Les testeurs d’intrusion d’applications Web doivent se familiariser avec tous les codes d’état et leurs définitions.

  • 1xx (informatif): la demande a été reçue, processus en cours
  • 2xx (réussi): la demande a été reçue, comprise et acceptée avec succès.
  • 3xx (redirection): d’autres actions doivent être entreprises pour compléter la demande.
  • 4xx (erreur du client): la requête contient une syntaxe incorrecte ou ne peut pas être remplie
  • 5xx (erreur de serveur): le serveur n’a pas réussi à répondre à une demande apparemment valide
  • Le script Nmap http-errors peut être utilisé pour identifier des codes de statut intéressants pour une enquête plus approfondie.


nmap -p80,443 –script http-errors example.com


Il suffit d’appeler le script http-errors pour commencer. Les ports 80 et 443 sont des ports de serveur Web de commande, mais peuvent être modifiés pour répondre à vos besoins.

Nmap scan report for example.com
Host is up (0.67s latency).

PORT STATE SERVICE
80/tcp open http
| http-errors:
| Spidering limited to: maxpagecount=40; withinhost=example.com
| Found the following error pages:
|
| Error Code: 403
|_ http://example.com:80/
443/tcp open https
| http-errors:
| Spidering limited to: maxpagecount=40; withinhost=example.com
| Found the following error pages:
|
| Error Code: 400
|_ http://example.com:443/

Dans la sortie ci-dessus, Nmap a détecté un statut 403, ce qui suggère que les autorisations de fichiers du serveur sont mal configurées et que les visiteurs n’ont pas accès à la ressource demandée. Vous trouverez ci-dessous une commande plus fine comprenant plusieurs arguments de script.

nmap -vv -p80,443 –script http-errors –script-args « httpspider.url=/docs/,httpspider.maxpagecount=3,httpspider.maxdepth=1 » example.com

Ce script Nmap utilise la bibliothèque httpspider . Par conséquent, nous pouvons utiliser des arguments tels que httpspider.url , httpspider.maxpagecount et httpspider.maxdepth pour affiner notre analyse en fonction d’URL spécifiques et définir le nombre de pages que nous souhaitons que Nmap analyse, avant de s’arrêter.