Ce projet démontre, dans un environnement strictement contrôlé, comment des données sensibles peuvent être exposées involontairement via une page web, puis détectées automatiquement à l’aide d’un script Python utilisant des expressions régulières.
Toutes les données utilisées sont fictives et destinées uniquement à la démonstration pédagogique.
- Présentation du projet
- Objectif pédagogique
- Environnement de test
- Architecture du lab
- Étape 1 – Préparation de l’environnement
- Étape 2 – Vérification du serveur web
- Étape 3 – Création de la page HTML exposée
- Étape 4 – Test local de la page
- Étape 5 – Accès distant depuis Parrot OS
- Étape 6 – Création du script de détection
- Étape 7 – Vérification du script
- Étape 8 – Exécution du scan automatisé
- Mise en situation réelle
- Analyse sécurité (contexte réel)
- Bonnes pratiques recommandées
- Sécurité de l’environnement de test
- Avertissement
- Résultat final
| ID | Fonction | Statut |
|---|---|---|
| 1 | Crawler HTML récursif | ✅ Validé |
| 2 | Détection SQL Injection | ✅ Validé |
| 3 | Détection XSS | ✅ Validé |
| 4 | Recherche de données sensibles | ✅ Validé |
| 5 | Génération de rapports (JSON / MD) | ⏳ À venir |
Ce projet est structuré en 5 projets pédagogiques distincts, chacun correspondant à une fonctionnalité clé du laboratoire.
Les différentes étapes et fonctionnalités seront publiées progressivement et intégrées au dépôt GitHub au fur et à mesure de l’avancement du projet.
- Client : Parrot OS
- Serveur : Debian GNU/Linux + Apache2
- Réseau : privé / isolé (
192.168.x.x) - Hyperviseur : VirtualBox
- Debian : serveur web réel hébergeant une ressource exposée par erreur.
- Parrot OS : acteur externe automatisé (scanner, audit ou outil de sécurité) chargé de détecter passivement des données sensibles accessibles publiquement.
📄 Étape 1 - Vérification de la connectivité réseau
Avant toute analyse applicative, la connectivité réseau entre les machines virtuelles est vérifiée à l’aide de requêtes ICMP.
➡ICMP est un protocole réseau utilisé pour tester la connectivité entre deux machines, notamment via la commande ping.
ping 192.168.100.10
Debian → Parrot ping 192.168.100.20
✅ Résultat attendu : communication réseau fonctionnelle.
📄 Étape 2 - Vérification du serveur web (Debian)
Cette étape permet de confirmer que le service Apache est actif sur la machine cible.
sudo systemctl status apache2
➡ Apache est actif et prêt à servir du contenu.
📄 Étape 3 - Création de la page HTML exposée (Debian)
Une page HTML de démonstration est créée afin de simuler une exposition de données sensibles.
sudo nano /var/www/html/sensitive_demo.html
La page contient volontairement les éléments suivants (données factices) :
• adresse e-mail fictive
• mot de passe de démonstration
• clé AWS factice
• token GitHub factice
• numéro de carte bancaire de test
Recharge du service Apache :
sudo systemctl reload apache2
📄 Étape 4 - Test local de la page (Debian)
Cette étape permet de vérifier que la page est correctement servie par Apache côté serveur.
curl http://127.0.0.1/sensitive_demo.html
➡ La page est bien servie localement.
📄 Étape 5 - Accès distant depuis Parrot OS
Un accés distant à la page exposée est réalisé depuis Parrot OS via le réseau interne.
Commande utilisée :
curl http://192.168.100.10/sensitive_demo.html
➡ Les données exposées sont accessibles depuis le réseau interne.
📄 Étape 6 - Création du script de détection (Parrot)
Un script Python minimaliste est créé afin d’analyser le contenu de la page web.
nano sensitive_mini.py
Fonctions du script :
• téléchargement du contenu HTML
• détection via expressions régulières (regex)
• affichage structuré des résultats
📂 Étape 7 - Vérification du script
La présence du script dans le répertoire courant est vérifiée.
ls
Le script est exécuté contre l’URL de la page exposée.
Commande utilisée :
python3 sensitive_mini.py (http://192.168.100.10/sensitive_demo.html)
Résultats détectés :
• adresse e-mail
• clé AWS (fake)
• token GitHub (fake)
• numéro de carte bancaire de test
Dans un environnement réel, ce type de ressource exposée n’est pas nécessairement découvert par un humain.
Des outils automatisés (robots, scanners, crawlers) parcourent en permanence les réseaux et les serveurs afin de détecter :
- des pages accessibles publiquement,
- des fichiers oubliés,
- des contenus contenant des données sensibles.
Ces scans peuvent être réalisés :
- par des moteurs de recherche,
- par des outils de sécurité,
- ou par des acteurs malveillants.
Ainsi, une page de test oubliée peut être détectée rapidement et automatiquement, sans aucune action ciblée.
❓ Que va faire le hacker concrètement ?
Très simplement :
- Il voit qu’un fichier est accessible
- Il ouvre le fichier
- Il lit les informations
- Il peut ensuite :
- les copier
- les utiliser
- ou les revendre
Dans ce contexte, aucune attaque technique n’est nécessaire pour accéder aux données.
Ce projet inclut un workflow GitHub Actions exécutant un script Python de vérification de mots de passe dans un contexte CI/CD.
Le script fonctionne sans interaction utilisateur et vise à démontrer le principe d’un contrôle automatisé de bonnes pratiques de sécurité.
▶ Vérification volontairement simplifiée (liste statique)
▶ Objectif pédagogique, pas une validation de production def is_weak(password): ...
Lors du développement d’une application web, une page de test est créée et placée dans le dossier public du serveur afin de faciliter les vérifications.
Lors du déploiement en production, cette page n’est plus utilisée mais n’est pas supprimée.
Le serveur web continuant de servir automatiquement tous les fichiers présents dans ce dossier, la page reste accessible via son URL.
Cette situation, fréquente en environnement réel, peut entraîner une exposition involontaire de données sensibles.
Dans un environnement réel, ce type d’exposition peut provenir :
- d’une page de test oubliée
- d’un fichier de debug
- d’une API trop verbeuse
- de secrets exposés côté frontend
il suffit d’accéder à la ressource exposée et d’en analyser le contenu.
- supprimer immédiatement le contenu exposé
- révoquer et faire tourner les secrets
- utiliser des variables d’environnement
- mettre en place des scans de secrets automatisés (CI/CD)
- réaliser des audits de sécurité réguliers
- réseau isolé
- aucune exposition Internet
- service Apache arrêté après la démonstration
- données strictement factices
Projet strictement éducatif.
Aucune donnée réelle n’est utilisée.
Aucun système tiers n’a été ciblé.
✔ Projet publiable sur GitHub
✔ Lisible par recruteur ou jury
✔ Orientation défensive et pédagogique
✍️ Auteur : Virginie Lechene
Le script est publié sous la licence MIT.
Ce projet est destiné exclusivement à des fins pédagogiques, notamment dans le cadre de :
- d’une formation en cybersécurité,
- de tests d’intrusion légaux (pentest),
- d’analyses réseau dans un environnement contrôlé.
Les visuels de ce dépôt sont protégés par la licence CC BY-ND 4.0. Attribution obligatoire – Modification interdite.
© 2026 Virginie Lechene






