TP Violation de Gestion d'authentification et de session đâïž
DĂ©finition (OWASP Top 10 â A07 :2021)
A07:2021 â Identification and Authentication Failures dĂ©signe lâensemble des failles liĂ©es Ă lâidentification et Ă la gestion de lâauthentification, permettant Ă un attaquant de contourner ou de compromettre les mĂ©canismes de connexion dâune application.
đŻ Objectifs pĂ©dagogiques
- Identifier les vulnĂ©rabilitĂ©s liĂ©es Ă lâauthentification et Ă la gestion de session.
- Réaliser une attaque par force brute avec Burp Suite Intruder.
- Mettre en Ă©vidence une injection SQL sur formulaire dâauthentification.
- Ăvaluer la robustesse des mĂ©canismes de session.
- Proposer des contre-mesures alignées sur les bonnes pratiques OWASP/ANSSI.
1. Rappels thĂ©oriques đ§ âïž
1.1 Attaques liĂ©es Ă lâauthentification đâïž
Risques :
- force brute automatisée
- comptes par défaut
- mots de passe faibles
- stockage non sécurisé
Protections :
- limitation dâessais
- délais progressifs
- journalisation
- non-divulgation des erreurs dâauthentification
- élimination des comptes par défaut
1.2 Authentification brisĂ©e (OWASP A07) đâïž
Un site est vulnérable si :
- il autorise la force brute
- il stocke les mots de passe en clair
- il expose les ID de session
- il nâinvalide pas les jetons
- il nâutilise pas (ou mal) le MFA
Conséquences :
- đ prise de contrĂŽle dâun compte
- đ usurpation dâidentitĂ©
- đ exfiltration de donnĂ©es sensibles
2. Comportement du formulaire dâauthentification đâïž
- Ouvrir :
http://localhost/breizhsecu/admin/ - Réaliser volontairement 5 tentatives erronées.
â Q1. Y a-t-il une limitation du nombre dâessais ?
Solution Question n°1
Aucune limitation nâest appliquĂ©e : lâutilisateur peut essayer un nombre illimitĂ© de mots de passe. Câest une faiblesse majeure facilitant la force brute.
â Q2. Le message dâerreur prĂ©cise-t-il si le login ou le mot de passe est incorrect ?
Solution Question n°2
Oui, le message distingue parfois login/mot de passe incorrect. Cela informe lâattaquant sur la validitĂ© du login et viole les bonnes pratiques OWASP.
3. Interception des requĂȘtes avec Burp Suite đ°ïžâïž
3.1. Installation BurpSuiteâïž
đœ Installer depuis la page Burp Suite
Burp est conçu pour ĂȘtre utilisĂ© avec votre navigateur. Il fonctionne comme un serveur proxy HTTP et tout le trafic HTTP/S de votre navigateur passe par Burp. Pour vous assurer que l'Ă©couteur proxy de Burp fonctionne, accĂ©dez Ă l'onglet Proxy et assurez-vous que Intercept est activĂ©, comme indiquĂ© ci-dessous.
HowTo
Maintenant, vous devez configurer votre navigateur pour utiliser l'écouteur Burp Proxy comme serveur proxy HTTP. Pour ce faire, vous devez modifier les paramÚtres de proxy de votre navigateur pour utiliser l'adresse de l'hÎte proxy (127.0.0.1) et le port 8080 pour les protocoles HTTP et HTTPS. Dans Firefox, allez dans Préférences. Cliquez sur Avancé, sélectionnez l'onglet Réseau et cliquez sur ParamÚtres, comme indiqué ci-dessous.
Sélectionnez le bouton radio Configuration manuelle du proxy. Entrez 127.0.0.1 dans le champ Proxy HTTP et entrez 8080 dans le champ Port. Assurez-vous que la case Utiliser ce serveur proxy pour tous les protocoles est cochée. Supprimez tout ce qui se trouve dans le champ Aucun proxy pour le champ. Enregistrez les paramÚtres.
Maintenant, si tout est configuré correctement, tout votre trafic HTTP/S devrait passer par Burp. Chaque fois que vous visitez un site Web, l'onglet Proxy de Burp changera sa couleur en orange et Burp conservera la demande jusqu'à ce que vous décidiez quoi en faire. à ce stade, vous pouvez désactiver l'interception et ne l'activer que lorsque vous en avez besoin.
- Configurer Firefox â Proxy manuel â 127.0.0.1:8080
- Activer Intercept On.
- Intercepter une tentative de connexion.
â Q3. Quels champs sont transmis dans la requĂȘte ?
Solution Question n°3
Le POST contient typiquement :
username=...password=...- parfois un
tokenCSRF (selon version)
â Q4. Le mot de passe circule-t-il en clair dans la requĂȘte ?
Solution Question n°4
Oui, le mot de passe apparaßt en clair dans le champ POST (non chiffré si HTTP).
3.2. Attaque par force brute (Burp Intruder) đâïž
- Envoyer la requĂȘte vers Intruder.
- Définir les positions (
username,password). - Type dâattaque : Cluster Bomb.
- Charger des listes de logins et mots de passe.
- Lancer lâattaque.
â Q5. Quel couple login/mot de passe permet lâaccĂšs ?
Solution Question n°5
Selon la configuration fournie dans le TP, le couple trouvé est souvent :
login : admin
password : admin
ou encore un mot de passe trivial contenu dans rockyou.txt.
â Q6. Pourquoi cette attaque est-elle possible ?
Solution Question n°6
- absence de limitation dâessais
- absence de délai progressif
- mots de passe faibles ou par défaut
- absence de filtrage dâIP
- messages dâerreur explicites
4. Analyse de la gestion de session đâïž
Si vous Ă©tiez un pirate qui tentait d'accĂ©der Ă la partie back-end de l'application, câest-Ă -dire la partie ou l'administrateur du site va se connecter, quelles url tenteriez-vous rapidement pour retrouver la page permettant Ă un administrateur de s'authentifier ?
- http://localhost/breizhsecu/backend
- http://localhost/breizhsecu/administrateur
- http://localhost/breizhsecu/manager
- http://localhost/breizhsecu/admin
- http://localhost/breizhsecu/secure
Tentez chacune de ces URL, laquelle vous mĂšne vers quelque chose d'exploitable ? Notez bien cette URL.
Connectez-vous ensuite Ă un compte utilisateur, puis retournez sur cette url. Que se passe-t-il ? Potentiellement rien, mais si vous appliquez la mĂȘme logique de programmation pour la partie dĂ©diĂ©e aux utilisateurs que celle dĂ©diĂ©e aux administrateurs, quelle url serait-il judicieux de tester ?
Actions :
- se connecter
- récupérer le cookie de session
- vĂ©rifier prĂ©sence dâun ID dans lâURL
- tester la déconnexion
â Q9. Le cookie de session contient-il un identifiant simple ?
Solution Question n°9
Sur de nombreuses versions du TP, lâID de session est simple (ex : valeur sĂ©quentielle). Cela facilite lâusurpation de session.
â Q10. LâID de session apparaĂźt-il dans lâURL ?
Solution Question n°10
Dans certains cas oui : ?PHPSESSID=...
Câest une mauvaise pratique sĂ©vĂšrement interdite par lâOWASP.
â Q11. Que se passe-t-il en cas de fermeture dâonglet / retour / dĂ©connexion ?
Solution Question n°11
- fermeture dâonglet : session encore active
- retour sur lâaccueil : utilisateur toujours connectĂ©
- dĂ©connexion : parfois le cookie nâest pas invalidĂ© â session rĂ©utilisable
5. đĄïž Recommandations de sĂ©curitĂ©âïž
- mise en place MFA
- limitation dâessais
- délais progressifs
- hashing robuste (bcrypt/argon2)
- suppression des comptes par défaut
- invalidation stricte des sessions
- non-exposition des IDs de session
- utilisation de requĂȘtes prĂ©parĂ©es (SQL)
- journalisation et alertes sur échecs répétés