Redirection d'URL non sécurisée

Redirection d'URL non sécurisée

Véritable domaine, vraie connexion, puis un 302 à l'attaquant.

Qu'est-ce que Redirection d'URL non sécurisée?

Une redirection ouverte envoie le navigateur vers une destination extraite de la requête sans demander si la destination est la vôtre. L'application ne gagne rien du bug ; l'attaquant obtient votre nom d'hôte, au moment où l'utilisateur lui fait le plus confiance. Vous rejouerez une connexion qui honore un paramètre next et regarderez un 302 transporter la victime vers une page de connexion similaire. Ensuite, vous corrigez res.redirect(req.query.next) avec des chemins relatifs uniquement ou une liste verte de noms d'hôtes, et voyez pourquoi startsWith('/') laisse passer directement un //host relatif au protocole.

Ce que vous apprendrez dans Redirection d'URL non sécurisée

Redirection d'URL non sécurisée — Étapes de la formation

  1. Dimensionner la cible

    Aujourd'hui, Bob s'en prend aux comptes de Fernloft. Il s'agit d'un service cloud personnel, donc un seul compte contient toute la vie d'une personne : photos, dossiers fiscaux, analyses d'identité, sauvegardes. Il n'a le mot de passe de personne, il envisage donc d'étudier le fonctionnement de la connexion de l'intérieur. Fernloft permet à n'importe qui de s'inscrire, il commence donc par la page d'inscription.

  2. Créer un compte jetable

    D’abord, il a besoin d’un compte qui lui est propre pour tester, un compte qui ne le mène nulle part. Il remplit une adresse et un mot de passe jetables et les crée.

  3. Lire l'adresse de connexion

    Compte créé, Bob arrive sur la page de connexion. Avant de se connecter, il lit la barre d'adresse. Le lien de connexion comporte une valeur redirect_to , actuellement /home , qui décide où l'application envoie le navigateur après une connexion réussie.

  4. Connectez-vous et regardez où il vous envoie

    Bob se connecte désormais avec son compte jetable et regarde où l'application envoie le navigateur une fois le mot de passe accepté.

  5. Créer le lien malveillant

    Bob reconstruit le même lien de connexion, mais modifie la valeur redirect_to pour pointer vers une page qui lui appartient au lieu de /home . Il modifie uniquement cette valeur dans la barre d'adresse pour voir si l'application obéira à une cible hors site de la même manière qu'elle a obéi à /home .

  6. Redirection ouverte confirmée

    Bob se connecte sur la vraie page Fernloft avec son compte jetable. Les informations d'identification sont réelles, donc la connexion réussit, puis l'application lit sa valeur redirect_to spécialement conçue pour décider où envoyer le navigateur.

  7. Armer le lien

    Bob enveloppe le lien de connexion contrefait dans un message sur lequel n'importe qui pourrait agir : un avertissement d'expiration de session. Il extrait les adresses Fernloft d'une faille de sécurité et crée le même lien vers chacune d'entre elles. Nous suivons une destinataire, Alice.

  8. Un avertissement concernant votre compte

    En dehors de l'horloge, Alice vérifie sa boîte de réception personnelle. Il y a un message de Fernloft : sa session a expiré et elle doit vérifier pour conserver ses fichiers. Elle utilise Fernloft pour tout, donc perdre l'accès serait un véritable casse-tête.

  9. Cliquez sur le lien

    Le lien pointe vers account.fernloft.com, la véritable adresse de Fernloft, donc Alice clique dessus comme n'importe qui le ferait.

  10. La vraie page de connexion

    Le lien ouvre la véritable page de connexion de Fernloft. La barre d'adresse affiche le domaine réel sur https, tout semble correct, et c'est à ce moment qu'Alice décide de faire confiance à la page.

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

OWASP Top 10

  • A01:2025 Broken Access Control
  • A01:2021 Broken Access Control

CWE

  • CWE-601 URL Redirection to Untrusted Site ('Open Redirect')

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