Open Redirect : quelle est cette vulnérabilité et comment s’en prémunir ?

Open Redirect : quelle est cette vulnérabilité et comment s’en prémunir ?

Hossam M.
Calendar picto
28/2/2022
Clock picto
4 min

Qu'est-ce que la vulnérabilité de Open Redirect ?


Une vulnérabilité Open Redirect implique qu'un attaquant manipule l'utilisateur et le redirige d'un site vers un autre site, qui peut être malveillant. La communauté de la cybersécurité n'accorde pas suffisamment d'importance aux vulnérabilités Open Redirect, car elles sont considérées comme une simple faille généralement liée aux escroqueries par phishing et à l'ingénierie sociale.


Un site web est vulnérable à Open Redirect lorsque les valeurs des paramètres (la partie de l'URL après "?") dans une requête HTTP GET permettent d'obtenir des informations qui redirigeront un utilisateur vers un nouveau site web sans aucune validation de la cible de la redirection. Selon l'architecture d'un site web vulnérable, la redirection peut se produire après une certaine action, comme la connexion, et parfois elle peut se produire instantanément au chargement d'une page.


Les attaques Open Redirect sont le plus souvent utilisées pour soutenir des attaques de phishing ou rediriger les utilisateurs vers des sites web malveillants.


  • Open Redirect pour le phishing

Un utilisateur qui clique sur un lien lorsqu'il navigue sur un site Web légitime ne se doute généralement de rien si une invitation de connexion apparaît soudainement. Les attaquants exploitent cette situation en envoyant aux victimes un lien vers un site web de confiance, mais en exploitant ensuite la vulnérabilité Open Redirect pour les rediriger vers des URL malveillantes. Ces URL sont souvent conçues comme des pages de phishing qui semblent dignes de confiance et similaires au site d'origine.


Lorsque la victime navigue sur le site web malveillant, elle est généralement invitée à saisir des informations d'identification dans un formulaire de connexion. Le formulaire pointe vers un script, qui est contrôlé par les attaquants, généralement dans le but de voler les informations d'identification de l'utilisateur saisies par la victime.


Ces informations d'identification volées sont enregistrées par l'attaquant et utilisées ultérieurement pour usurper l'identité de ces victimes sur le site Web. Comme le domaine du site Web légitime s'affiche lorsque les utilisateurs cliquent sur le lien, la probabilité de réussite d'une attaque de phishing est très élevée.


  • Open Redirect pour rediriger vers des sites web malveillants

Les attaquants peuvent utiliser cette vulnérabilité pour rediriger les utilisateurs vers des sites Web hébergeant du contenu contrôlé par les attaquants, comme des exploits de navigateur ou des pages exécutant des attaques CSRF. Si le site web vers lequel pointe le lien est digne de confiance pour la victime, celle-ci est plus susceptible de cliquer sur le lien.


Comment se prémunir contre la vulnérabilité Open Redirect ?

Il existe plusieurs façons d'éviter les vulnérabilités de redirection ouverte. Voici les principales méthodes recommandées par l'Open Web Application Security Project (OWASP):


  • N'utilisez pas les forward et les redirections.
  • Ne permettez pas à l'utilisateur d'entrer des URL comme destination.
  • S'il est absolument nécessaire d'accepter une URL de la part des utilisateurs, demandez-leur de fournir un nom court, un jeton ou un identifiant qui est mappé côté serveur à l'URL cible complète. Cette méthode offre un haut niveau de protection contre les attaques qui altèrent les URL. Toutefois, vous devez veiller à ne pas introduire une vulnérabilité d'énumération qui permettrait aux utilisateurs de parcourir les identifiants et de trouver toutes les cibles de redirection possibles.
  • Lorsque la saisie de l'utilisateur ne peut être évitée, vous devez vous assurer que toutes les valeurs fournies sont valides, qu'elles sont appropriées pour l'application et qu'elles sont autorisées pour chaque utilisateur.
  • Créez une liste de toutes les URL de confiance, y compris les hôtes ou une regex, afin d'assainir les entrées. Il est préférable d'utiliser une liste d'autorisations pour créer cette liste, plutôt qu'une liste de blocage.
  • Forcez les redirections à passer d'abord par une page qui informe les utilisateurs qu'ils sont redirigés hors du site Web. Le message doit afficher clairement la destination et demander aux utilisateurs de cliquer sur un lien pour confirmer qu'ils veulent passer à la nouvelle destination.