Twitter subit une faille XSS

Dans la série, si madame Michu arrive à sécuriser sa connexion Internet je veux bien manger mon chapeau (qu’il va falloir que je récupère un jour), je vous présente la toute dernière faille de sécurité touchant une toute petite boite : Twitter… Après le petit social engineering dont a été victime la startup, qui n’a plus de startup que le nom, Twitter va à nouveau défrayer la chronique à cause d’une faille de sécurité exposant tous ses utilisateurs : une injection XSS toute bête à exploiter.

Lorsque l’on poste sur twitter depuis une application l’API permet d’afficher le nom du logiciel utilisé en ajoutant un petit lien vers le site de l’éditeur dudit logiciel. Véritable tremplin pour les applications du genre, il semblerait que cette fonctionnalité ne soit pourtant pas idéale d’un point de vue sécurité.

C’est en effet en ajoutant au nom du logiciel utilisé (Ubertweet visiblement, mais il a aussi pu le modifier en passant) qu’un pirate a réussit à exploiter une faille vielle comme le monde : la fameuse injection XSS. Le principe est très simple : il s’agit d’injecter du code Javascript au texte originellement attendu. Si le site est mal codé (aka si le code est affiché tel quel sans que ne soit pratiqué de vérification sur le contenu) le script va être interprété et peut poser de graves problèmes de sécurité.

Il est notamment tout à fait possible de voler les cookies (et donc le compte) d’un utilisateur du service qui serait connecté au moment où il visualiserait la page !

Pour cela rien de plus simple, il suffit de les envoyer sur une autre adresse en Ajax (non je ne vous donnerai pas le code en question ;)). Une fois le cookie récupéré il suffit de le forger en local, et hop, on est connecté sans avoir à rentrer un seul login/mdp (admin / admin marche pas en plus !)

Twitter a réagi assez vite puisque le compte en question (@0wn3d_5ys) a été désactivé et que ma tentative d’injecter du code Js en modifiant une requête envoyée par Echofon (en utilisant Tamper Data) s’est soldée par un échec : « Signature non reconnue ». Il semblerait cependant que la modification du nom du logiciel requière une modification d’un autre paramètre : oauth_signature qui est calculée à partir de divers paramètres (surement le timestamp et le nom du logiciel) et que notre ami pirate a du générer. Je ne suis donc pas sûr que la faille soit comblée à l’heure où j’écris ces lignes…

J’ai pu regarder rapidement le code utilisé par le pirate et n’y ai rien vu qui ressemble à un vol de cookie. Cependant, par mesure de précaution et parce que je ne suis pas sûr d’avoir visité tout le Javascript injecté, j’ai décidé de changer de mot de passe (et de me déconnecter / reconnecter vu que les identifications Twitter sont basées sur des sessions dont l’identifiant est stocké en cookie) et vous recommande de faire la même chose si vous avez eu le temps de visiter le compte en question avant sa fermeture…

Accessoirement, et c’est plus grave encore, rien ne garanti que vous n’avez pas, ou n’allez pas, visiter un compte qui aurait utilisé la même méthode de façon plus sournoise pour voler votre compte sans que cela ne se voit… Prudence donc en allant visiter les comptes twitter sur le Web…

1 réflexion sur « Twitter subit une faille XSS »

Les commentaires sont fermés.