Skip to main content

Les navigateurs mis à mal par la vulnérabilité open redirect

Écrit par

Kyle Suero

Headshot of Aviad Hahami

Aviad Hahami

feature april fools

1 avril 2022

0 minutes de lecture

Si vous êtes arrivé sur cet article après avoir examiné de plus près le tweet Rick Rolled que nous avons publié pour le poisson d’avril… bien joué ! Si ce n’est pas le cas, découvrez le lien que nous avons tweeté pour comprendre la blague.


« Ne cliquez jamais sur des liens inattendus ! » Vous avez déjà entendu quelqu’un le crier ? Pratiquement toute personne travaillant dans la tech se méfie raisonnablement des liens inconnus, et ce n’est pas sans raison. De temps à autre, des fuites massives touchent des leaders du secteur à la suite de campagnes ciblées. L’une des méthodes les plus fiables pour hameçonner quelqu’un ou dérober ses identifiants consiste à exploiter une vulnérabilité de redirection ouverte sur un site qui semble sûr afin de rediriger les victimes vers un site malveillant. Et même si nous avons seulement mentionné le vol d’identifiants, il convient de noter que les vulnérabilités de redirection ouverte peuvent également ouvrir la voie à des vulnérabilités plus sophistiquées.

Que sont les redirections ouvertes et comment fonctionnent-elles ?

La forme élémentaire d’une vulnérabilité de redirection ouverte est simple. Un attaquant crée une URL menant vers un site connu, par exemple www.snyk.io, puis y ajoute un paramètre, une chaîne de requête ou un élément de chemin qui, une fois transmis au serveur, l’amènera à rediriger la requête (et le client) vers une URL ou un point de terminaison censé être celui visé. Comme cette étape intervient à la base de toute requête HTTP, la vulnérabilité apparaît si le serveur ne vérifie pas l’URL de destination avant la redirection et redirige simplement la requête à l’aveugle. Dans ce scénario, un attaquant peut choisir l’URL vers laquelle rediriger ses victimes et leur envoyer le lien malveillant. L’attaque peut prendre la forme d’une URL telle que [www.snyk.io?nextUR](http://www.snyk.io?nextURL=)L=//malicious.com. Si nous créons et stylisons malicious.com pour qu’il ressemble exactement à www.snyk.io, une victime peu méfiante aura beaucoup de mal à distinguer les deux sites et risque fort d’être exploitée par l’attaquant.

Même si une redirection ouverte peut sembler ne pas constituer un problème techniquement grave, les conséquences sur la confiance des utilisateurs fidèles sont importantes. Au bout du compte, les victimes sont des clients du produit. Si un produit perd la confiance de ses clients, il finira par ne plus les séduire (ils partiront et aucun nouveau client ne le rejoindra). Ainsi, même si la vulnérabilité n’est pas grave sur le plan technique, elle l’est du point de vue du produit et de son intégrité, et peut avoir des répercussions sur l’ensemble du produit.

Pour ajouter encore du café dans notre tasse « tout va bien », une vulnérabilité de redirection ouverte peut être combinée à d’autres vulnérabilités Web, comme XSS, avec un impact bien plus important et un risque potentiellement critique. En mars 2018, par exemple, Twitter a reçu un signalement concernant une redirection ouverte entraînant une XSS. En examinant le signalement, vous verrez que le chercheur a découvert qu’en déclenchant la vulnérabilité de redirection ouverte, il pouvait effectuer une XSS. Associée à la redirection ouverte, celle-ci a entraîné la compromission complète des données liées au domaine de la victime (cookies, stockage local, etc.). Twitter a récompensé le chercheur de 1 120 $ pour cette découverte.

De même, la falsification de requête côté serveur (SSRF) est une vulnérabilité qui peut facilement compromettre un serveur. Les vulnérabilités de redirection ouverte pouvant aider un adversaire à contourner les mécanismes de filtrage, combiner ces deux vulnérabilités, c’est comme boire une bière en regardant un match : elles vont parfaitement ensemble ! Toute requête envoyée par un serveur qui utilise des entrées utilisateur constitue une cible de choix pour un attaquant. Une fois que l’adversaire a compris comment le point de terminaison concerné traite les entrées utilisateur, il ne lui reste qu’à faire preuve d’imagination et à procéder par essais et erreurs jusqu’à trouver une piste exploitable pour une SSRF. Lorsqu’il repère une redirection ouverte, il s’acharne sur le paramètre d’URL concerné, tentant d’accéder à des points de terminaison internes critiques, à des services, ou même à des ressources externes malveillantes !

Évitez les redirections ouvertes dans vos applications

Certains d’entre vous sont probablement déjà prêts à partir à la chasse aux redirections ouvertes ! Pour résoudre ces problèmes, voici quelques pistes. Validez toutes les entrées utilisateur, en particulier lorsque des données contrôlées par l’utilisateur sont répercutées dans l’URL. Activez des mécanismes d’authentification robustes sur les services qui n’en disposent pas par défaut. Utilisez une liste d’autorisation pour limiter les destinations possibles d’une redirection. Pour en savoir plus sur la résolution de ces problèmes, consultez cette fiche pratique de l’OWASP.

En conclusion, nous vous invitons à ne pas négliger les vulnérabilités de redirection ouverte sous prétexte qu’elles semblent moins techniques. Leurs conséquences pour les clients et les dommages qui peuvent en découler peuvent être graves. Laisser une vulnérabilité de redirection ouverte sans correction, c’est comme laisser portes et fenêtres ouvertes en espérant que personne ne s’introduira chez vous : ça n’a tout simplement aucun sens !