Clicklogin?

Beaucoup d’attaques plus ou moins récentes profitent du fait que les utilisateurs ont tendance à rester connectés sur beaucoup de sites simultanément. Ceci est en effet facilité par le fait que tous les navigateurs récents supportent le concept de “tabs” ou d’onglets. On peut par exemple mentionner le CSRF, souvent sous-estimé et mal compris, ou le clickjacking qui profitent du fait que le navigateur de l’utilisateur est authentifié à un site vulnérable pour y effectuer des commandes malicieuses. C’est pourquoi beaucoup de sites sensibles recommandent de fermer tous les autres volets de navigation avant de s’y authentifier.

Il semble alors évident que pour un attaquant, il y a un intérêt non nul à forcer une victime à se connecter à un site vulnérable avant d’attaquer son compte. Ceci peut être fait en abusant de la fonctionnalité des navigateurs leur permettant de garder en mémoire les identifiants de l’utilisateur sur différents sites.

En effet, un attaquant peut préparer une page malicieuse incluant une frame cachée du site à attaquer. Le navigateur remplit alors automatiquement les champs de login et de mot de passe. Il suffit ensuite de convaincre l’utilisateur de cliquer quelque part pour authentifier la victime sur le site à attaquer en repositionnant la frame sous son curseur. Dès lors, les traditionelles attaques de CSRF ou Clickjacking peuvent prendre place.

L’attaque fonctionne bien sur Firefox et Chrome, mais pas sur Internet Explorer, qui ne remplit pas automatiquement les champs enregistrés lors du chargement d’une page. Il serait intéressant de pouvoir demander au navigateur de ne pas remplir les champs lorsqu’ils ne se trouvent pas sur la page principale, mais dans une frame, d’autant plus si cette dernière est invisible.