🐍Mini scanner web Python

Rapport technique de projet Cybersécurité débutante | Analyse des requêtes HTTP et codes de réponse

Objectif du projet

Ce projet est mon premier outil de cybersécurité développé en Python. L’idée est simple mais puissante : créer un mini scanner web capable d’envoyer une requête HTTP à une URL cible et d’analyser automatiquement le code de réponse renvoyé par le serveur.

En cybersécurité, comprendre comment un serveur réagit à une requête est fondamental. Chaque code de statut HTTP raconte quelque chose sur l’état du serveur, ses protections, et son comportement face à un visiteur inconnu. Ce projet m’a permis de mettre en pratique des notions théoriques vues en cours, dans un contexte concret et réaliste.

L’outil a été testé sur le domaine secureaweb.fr, avec un résultat très instructif : un code 403 Forbidden, qui indique que l’accès est explicitement refusé par le serveur.

Comprendre les requêtes HTTP

Avant d’expliquer le code, il est important de comprendre le contexte technique dans lequel ce projet s’inscrit. Lorsqu’un navigateur ou un programme Python accède à une page web, il envoie une requête HTTP au serveur. Le serveur traite cette requête et répond avec un code de statut à trois chiffres.

1xx — Informationnel

La requête est en cours de traitement. Ces codes sont rarement visibles par l’utilisateur final.

2xx — Succès

200 OK : La requête a réussi. Le serveur a bien répondu et la ressource est accessible normalement.

3xx — Redirection

Le client doit effectuer une action supplémentaire pour compléter la requête (redirection vers une autre URL).

4xx — Erreur client

403 Forbidden, 404 Not Found : Le serveur a compris la requête mais refuse ou ne peut pas y répondre.

5xx — Erreur serveur

Le serveur a rencontré une condition inattendue qui l’a empêché de satisfaire la requête.

</> Code Python

Explication détaillée du code

Voici le cœur du projet : un script Python concis, mais chargé de sens. Chaque ligne a son rôle dans la chaîne de reconnaissance web.

Le script complet

Ligne par ligne

01 – import requests

Importe la bibliothèque requests, outil incontournable pour effectuer des requêtes HTTP en Python. À installer via pip install requests.

02 – url = "..."

Définit la cible du scan : l’URL du site web à analyser. C’est ici qu’on indique quelle adresse interroger.

03 – requests.get(url)

Envoie une requête GET au serveur cible, exactement comme lorsqu’un navigateur demande une page web.

04 – status_code

Récupère et affiche le code de réponse HTTP renvoyé par le serveur. C’est le résultat clé du scan.

➤ Exécution

Étapes d’exécution du projet

📋 Création du script Python

J’ai créé un script Python dans l’éditeur Replit et écrit le code nécessaire pour envoyer une requête HTTP vers une URL précise.

▶️ Lancement du script

J’ai exécuté le programme en utilisant le bouton “Run” de Replit afin de lancer l’interprétation du code Python.

🌐Envoi de la requête HTTP

Le script utilise la méthode GET (requests.get) pour envoyer une requête vers le site ciblé et récupérer une réponse du serveur.

🔎Lecture du résultat

 Le résultat est affiché dans la console sous forme de status code HTTP (ex : 403), ce qui permet d’analyser la réponse du serveur.

📊 Résultat

Résultat obtenu : Code 403 sur secureaweb.fr

Sortie du terminal

Le script a bien fonctionné. En moins d’une seconde, il a envoyé une requête GET au serveur de secureaweb.fr et reçu une réponse claire : 403 Forbidden.

Que s’est-il passé exactement ?

Lorsque le script a interrogé secureaweb.fr, le serveur a reçu la requête, l’a analysée, puis a décidé de la refuser explicitement. Ce n’est pas une erreur du code Python le programme a parfaitement fonctionné.

Le code 403 est une réponse valide du serveur. Il signifie : « J’ai bien reçu ta demande, mais tu n’as pas le droit d’accéder à cette ressource. » Le serveur est donc en ligne, actif, et protégé.

✅ Script exécuté

Aucune erreur Python

✅ Serveur contacté

Réponse reçue

⚠️ Accès refusé

Code 403 retourné

📈 Analyse

Interprétation du code 403 en cybersécurité

Un code 403 n’est pas simplement une erreur technique c’est une information précieuse pour un analyste en cybersécurité. Voici ce qu’il révèle et comment l’interpréter dans un contexte professionnel.

🗄️Le serveur est actif

Contrairement à un timeout ou à une erreur de connexion, le 403 prouve que le serveur est en ligne et répond. La cible existe et est fonctionnelle.

🛡️Accès filtré ou protégé

Le serveur dispose d’une politique d’accès : il refuse les requêtes non autorisées. Cela peut indiquer un pare-feu applicatif (WAF), une liste blanche d’IP, ou une authentification requise.

🕵Reconnaissance passive réussie

En cybersécurité offensive, obtenir un 403 lors d’un test d’intrusion autorisé est une information de reconnaissance utile : la cible existe, réagit, et est protégée.

⚠️Différence avec 401

Le code 401 Unauthorized suggère qu’une authentification est possible. Le 403 Forbidden est plus définitif : l’accès est interdit, même avec des identifiants valides.

🎓 Conclusion

Bilan et apprentissages clés

Ce mini projet m’a offert bien plus qu’un simple exercice de code. Il m’a permis de connecter la théorie à la pratique, de comprendre comment les outils de cybersécurité fonctionnent réellement, et de développer une démarche analytique face aux résultats obtenus.

🐍 Python comme outil de sécurité

Quelques lignes suffisent pour créer un outil fonctionnel. Python est un langage de choix en cybersécurité grâce à sa simplicité et à ses bibliothèques puissantes.

🌐 HTTP, ce n’est pas abstrait

Les codes de statut HTTP ne sont plus de simples numéros dans un cours ce sont des indicateurs concrets du comportement d’un serveur face à une requête.

🔍 Lire un résultat, pas juste l’obtenir

En cybersécurité, savoir interpréter une réponse est aussi important que de l’obtenir. Le code 403 m’a appris à distinguer une erreur d’un résultat significatif.

⚖️ L’éthique avant tout

Même un outil aussi simple doit être utilisé de manière responsable. La légalité et le consentement sont les fondations de toute démarche en cybersécurité. J’ai donc fait l’expérience avec mon propre domaine.

Ce projet est un premier pas. La prochaine étape sera d‘améliorer le scanner pour tester plusieurs URLs en boucle, ajouter la gestion d’erreurs réseau, et interpréter automatiquement chaque code HTTP avec un message explicatif. La cybersécurité, c’est apprendre en faisant et ce rapport en est la preuve !

Retour en haut