Cette faille est classée n°10 sur l’OWASP Top 10, c’est donc la dernière du classement. Ce n’est pas celle jugée comme étant la plus importante par l’OWASP, mais ce n’est pas pour autant qu’il faut l’ignorer, bien au contraire.
Ce type de vulnérabilité permet en effet d’effectuer des attaques de type phishing avec plus d’efficacité. Elle permet aussi d’accéder à des ressources non autorisées.

Comment cette faille fonctionne-t-elle?

Illustration - Changement de direction

De nombreux sites implémentent des mécanismes de redirections. Les usages sont très variés, on notera par exemple le cas visant à rediriger un utilisateur vers la page qu’il souhaite visualiser, mais une fois qu’il se sera connecté. Autre exemple : l’utilisation de redirections pour comptabiliser et analyser la navigation vers des sites externes en interceptant les clics vers ces sites tiers.

Exemple d’URL de redirection :
http://www.shop-vdt.com/login.php?goto=evil.com/login

Scénario d’attaque :

  1. L’utilisateur visé par l’attaque reçoit un email contenant le lien ci-dessus.
  2. La victime clique sur le lien, ce dernier lui semblant inoffensif (site shop-vdt.com connu)
  3. Une fois connectée via la page de login, shop-vdc.com va rediriger la victime vers le site evil.com
  4. Le site evil.com peut par exemple demander à la victime de renseigner à nouveau son mot de passe, en prétextant un problème technique ou une erreur de saisie. Mais cette fois l’utilisateur est sur un site pirate, qui lui volera ses identifiants.

Le site shop-vdt.com (site victime) redirige vers une page spécifiée via le paramètre “goto ».
Ce paramètre n’est pas vérifié par l’application web, qui redirige l’utilisateur victime.

Illustration de la faille et de l’attaque de phishing en vidéo :

Solutions techniques pour éviter les failles de redirection

Plusieurs solutions existent afin de se protéger contre cette faille.
Notamment :

  • tout simplement supprimer les redirections? Si vous pouvez vous en passer, supprimez ces mécanismes.
  • vérifier le “referrer” durant le process de redirection, pour vérifier que des sites externes n’envoient pas des utilisateurs sur votre site avec un abus sur la redirection
  • désactiver les redirections hors des domaines de vos applications web
  • utiliser une liste blanche de destinations
  • signer les redirections avec un hash, afin de contrôler la validité de l’URL vers laquelle l’utilisateur est redirigé

Parfois les mécanismes de redirections se doivent de rester assez “ouverts”. Il est donc dans certains cas difficile de boucher entièrement les failles. Il convient alors de surveiller les logs et statistiques de votre site afin de voir si certaines fonctionnalités ont été utilisées à des fins malicieuses.