Authentification utilisateur cassée

Authentification utilisateur cassée

Un code à 6 chiffres n'est qu'un secret alors que les suppositions sont limitées.

Qu'est-ce que Authentification utilisateur cassée?

Un point de terminaison peut vérifier correctement un identifiant sans jamais défendre la vérification contre l'automatisation : pas de limite de tentatives, pas de verrouillage, pas de limitation de débit. Lorsque les informations d'identification sont un code à 6 chiffres, un attaquant parcourt tout l'espace, une requête à la fois. Vous démarrerez une connexion contenant uniquement l'e-mail d'une cible, regarderez un code erroné répondre à 200 sans rien compter, puis créerez un script pour vous diriger vers une session en direct. Le correctif suit les tentatives infructueuses côté serveur, renvoie 429 à la limite, consomme un code en cas de correspondance et maintient l'expiration courte.

Ce que vous apprendrez dans Authentification utilisateur cassée

Authentification utilisateur cassée — Étapes de la formation

  1. Un code monte la garde

    Kelvo est une application d'argent grand public qui connecte les personnes avec un code à 6 chiffres envoyé par courrier électronique à leur adresse, sans mot de passe. Entrez votre email, Kelvo envoie un code, vous le retapez, vous y êtes. Bob n'a pas de code. Ce qu'il a, provenant d'une liste de diffusion piratée, est l'adresse e-mail d'un client : renata.voss@gmail.com.. Il ouvre la page de connexion Kelvo pour voir exactement à quoi il est confronté.

  2. Déclenchez le code

    Bob démarre une connexion pour le compte qu'il cible. Il tape l'e-mail de la victime et demande à Kelvo d'envoyer le code. Le code arrive dans la boîte de réception de Renata, pas dans la sienne, mais Kelvo lui montre maintenant l'écran qui le demande. Cet écran, et la demande qui se cache derrière, sont ce qu'il étudie ensuite.

  3. Regardez la demande

    L’écran de saisie du code est maintenant devant Bob. Il n'a pas le vrai code de Renata, mais avant d'essayer de le déchiffrer, il veut voir comment l'écran vérifie un code et où il l'envoie. Il tape un mauvais code et le soumet, puis regarde la requête que son navigateur fait dans le panneau Réseau.

  4. Le point final, bien en vue

    Le navigateur de Bob a envoyé le code à l'API de Kelvo et le panneau Réseau a capturé l'intégralité de la requête. Cela lui donne la seule chose dont il a besoin pour attaquer cela sans écran : le point final exact qui vérifie les codes.

  5. Le script de force brute

    Avec le point final en main, Bob ne devine pas à la main. Il ouvre le court script qu'il exécutera : une boucle qui soumet tous les codes possibles au point de terminaison de vérification de Kelvo jusqu'à ce que l'un d'eux revienne accepté.

  6. Comment fonctionne la boucle

    L’attaque entière est une poignée de lignes. Découvrez ce que fait chaque partie et pourquoi rien sur le serveur vulnérable ne l'arrête.

  7. Parcourez chaque code

    Bob exécute le script sur le point de terminaison de vérification de Kelvo. Il lance la même requête encore et encore, en incrémentant le code à chaque fois, et attend qu'une soit acceptée.

  8. Un code qui fonctionne

    Le script s'est exécuté sans opposition et a trouvé un code accepté par le serveur.

  9. Utilisez le code

    Bob prend le code trouvé par son script et l'envoie une nouvelle fois manuellement au point final, pour confirmer que le compte lui appartient et voir ce qu'il détient maintenant.

  10. Une session live, à partir de six chiffres

    Le point de terminaison a accepté le code deviné et a restitué une véritable session.

Couverture des référentiels de sécurité

OWASP API Top 10

  • API2:2023 Broken Authentication

CWE

  • CWE-287 Improper Authentication
  • CWE-307 Improper Restriction of Excessive Authentication Attempts

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security