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
- Reconnaître une redirection ouverte comme un accélérateur de phishing : l'attaquant emprunte le nom d'hôte légitime pour l'ancrage de la confiance
- Comprendre que les URL relatives au protocole (<code>//host</code>) réussissent les contrôles naïfs <code>startsWith("/")</code> et doivent être bloquées séparément
- Appliquez la validation relative uniquement (ou la liste verte des noms d'hôte si les redirections externes sont une réelle exigence)
- Distinguer la redirection ouverte de SSRF : l'attaquant dirige le navigateur, pas le serveur, et l'impact est la précision du phishing et non l'accès au réseau interne.
- Auditez chaque réponse <code>res.redirect</code>, <code>location.href</code> et <code>302 Location</code> dont la cible est dérivée de l'entrée de la requête
Redirection d'URL non sécurisée — Étapes de la formation
-
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.
-
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.
-
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.
-
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é.
-
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 .
-
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.
-
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.
-
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.
-
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.
-
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