[CVE-2011-1107] WebKit Location Bar URL Spoofing [Fixed in Google Chrome 9.0.597.107]
Par Jordi_Chancel le mardi, mars 1 2011, 11:42

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1107
http://googlechromereleases.blogspot.com/2011/02/stable-channel-update_28.html
http://www.vupen.com/english/advisories/2011/0525
Ce nouveau spoofing de WebKit (Google Chrome / Safari ...) est probablement le plus complexe qu'il m'ait été donné de trouver jusqu'à présent.Security researcher Jordi Chancel reported a vulnerability in Google Chrome before 9.0.597.107 that allows remote attackers to spoof the URL bar.
Basé sur de multiples éléments JavaScript ainsi qu'une redirection , cette vulnérabilité n'en reste pas moins très redoutable et particulièrement efficace du fait de sa discrétion et de ses possibilités d'exploitation.
Lire la suite...
Google Chrome et Safari sont en effet les 3eme et 4eme navigateurs sur lesquels je trouve une vulnérabilité en rapport avec une redirection.
La complexité de se spoofing est tel qu'il faut a la fois utiliser de multiples éléments JavaScript dont les exécutions sont additionnées dans le temps, modifier le contenu d'un fichier choisi en utilisant un langage serveur (PHP/ASP...) , puis utiliser une redirection dont la réponse va être manipulé dans le but d'afficher le contenu souhaité.
Étrangement similaire au SSL spoofing que j'avais signalé sur Mozilla Firefox tant pour les éléments JavaScript utilisés que pour sa complexité il n'en reste pas moins que cette fois-ci en plus du certificat SSL , l'adresse de location peut être aussi manipulé.
L'exploit peut offrir plusieurs formes d'exploitation :
L'exécution de code JavaScript de manière conventionnelle ne marche évidement pas.
J'ai alors pensé qu'insérer du code JavaScript dans une Iframe pourrait me permettre d'exécuter du code sur le même domaine que celui dont le contenue est manipulé par le Spoofing.
L'action échoue mais tests après tests je me suis alors rendu compte qu'une certaine interaction de l'utilisateur pouvait permettre l'exécution désiré.
Le drag & drop ...
C'est en effet via le biais d'un URI JavaScript contenant un certain élément pointant lui même sur du code que l'exécution peut être effectué sur le domaine distant a condition de "drag & drop" (prendre et poser) cette URL dans la Location Bar (Voir vidéo 1).
Vidéo 1 :
Vidéo 2 :
Vidéo 3 :
Pour conclure , cette vulnerabilité de google chrome offre de multiples scenarii d'attaque possible dont certaines peuvent évidement avoir un impact hautement critique.
Vulnérabilité reporté sur la plateforme Chromium le 2/09/2010
PoC: http://www.alternativ-testing.fr/Research/safari/spoof/56GFGF6GF2FDDF/spoofing.html
Auteur : Jordi Chancel
Tweet
La complexité de se spoofing est tel qu'il faut a la fois utiliser de multiples éléments JavaScript dont les exécutions sont additionnées dans le temps, modifier le contenu d'un fichier choisi en utilisant un langage serveur (PHP/ASP...) , puis utiliser une redirection dont la réponse va être manipulé dans le but d'afficher le contenu souhaité.
Étrangement similaire au SSL spoofing que j'avais signalé sur Mozilla Firefox tant pour les éléments JavaScript utilisés que pour sa complexité il n'en reste pas moins que cette fois-ci en plus du certificat SSL , l'adresse de location peut être aussi manipulé.
L'exploit peut offrir plusieurs formes d'exploitation :
- La première est bien évidemment de changer l'adresse de la location_bar par l'adresse d'un site web ciblé tout en intégrant un contenu légitime dans le but de persuader l'utilisateur qu'il se trouve réellement sur le site de son choix afin qu'il y entrent ses informations personnelles (Identifiant , Mot de passe , Code Bancaire etc ) [ VOIRE VIDÉO 1 ]
- La deuxième nécessite moins d'interaction de la part de l'utilisateur , cependant elle requière plusieurs éléments indispensables à son exploitation. cette attaque va prendre comme cible les identifiants et mots de passe enregistrés dans le navigateur dans le but de détourner l'adresse cible du formulaire de connexion sur le site pirate. Cependant l'utilisateur devra quand-même valider la connexion sur une adresse autre que celle du site ciblé (mais qui cependant détient le même certificat SSL due à l'action du Spoofing) . [ VOIRE VIDÉO 2 ]
L'exécution de code JavaScript de manière conventionnelle ne marche évidement pas.
J'ai alors pensé qu'insérer du code JavaScript dans une Iframe pourrait me permettre d'exécuter du code sur le même domaine que celui dont le contenue est manipulé par le Spoofing.
L'action échoue mais tests après tests je me suis alors rendu compte qu'une certaine interaction de l'utilisateur pouvait permettre l'exécution désiré.
Le drag & drop ...
C'est en effet via le biais d'un URI JavaScript contenant un certain élément pointant lui même sur du code que l'exécution peut être effectué sur le domaine distant a condition de "drag & drop" (prendre et poser) cette URL dans la Location Bar (Voir vidéo 1).
Vidéo 1 :
Vidéo 2 :
Vidéo 3 :
Pour conclure , cette vulnerabilité de google chrome offre de multiples scenarii d'attaque possible dont certaines peuvent évidement avoir un impact hautement critique.
Vulnérabilité reporté sur la plateforme Chromium le 2/09/2010
PoC: http://www.alternativ-testing.fr/Research/safari/spoof/56GFGF6GF2FDDF/spoofing.html
Auteur : Jordi Chancel
Tweet
Commentaires
# [$1000] [54262] High URL bar spoof. Credit to Jordi Chancel.
=]
Une très belle Découverte.
Bonne continuation.
Christo.
vraimennt c'est cool le truc j'adore ( bonne continuation ).
WebKit
Available for: Mac OS X v10.5.8, Mac OS X Server v10.5.8,
Mac OS X v10.6.8 or later, Mac OS X Server v10.6.8 or later,
Windows 7, Vista, XP SP2 or later
Impact: A maliciously crafted website may be able to cause a
different URL to be shown in the address bar
Description: A URL spoofing issue existed in the handling of the DOM
history object. A maliciously crafted website may have been able to
cause a different URL to be shown in the address bar.
CVE-ID
CVE-2011-1107 : Jordi Chancel