Accueil Last.fm vulnérable au CSRF
Post
Annuler

Last.fm vulnérable au CSRF

Dans le billet précédent je vous ai parlé des attaques par cross-site request forgery.

J’émettais aussi l’hypothèse selon laquelle une telle attaque a déjà eu lieu sur Last.fm en me basant sur le fait que je sois dans un groupe spécial pour lequel je ne me suis jamais inscrit.

Au lieu de retrouver l’éventuelle page responsable de mon admission forcée à ce groupe, j’ai préféré créer un nouveau groupe baptisé CSRF et tenter de trouver une technique enrolant de force les utilisateurs dans ce groupe.

Pour s’inscrire dans un groupe, la méthode naturelle consiste à se rendre sur la page du groupe (http://www.last.fm/group/CSRF) puis à cliquer sur “Join this group” qui nous renvoie sur la page http://www.last.fm/group/CSRF/join/.

La toute dernière étape consiste à valider l’inscription en cliquant sur le bouton “Click to join group” qui pointe vers l’adresse http://www.last.fm/group/CSRF/join/?confirm=yes.

À première vue, l’attaque consiste à faire en sorte que les visiteurs se rendent sur cette dernière url. Mais Last.fm a mis en place une protection anti-CSRF qui empêche les utilisateurs de s’inscrire à l’aveugle dans un groupe.

Si l’on renvoie les utilisateurs sur l’url, il leur est redemandé de cliquer sur le bouton, pointant cette fois vers http://www.last.fm/group/CSRF/join/?confirm=apply.

Dans le sens inverse, si on les dirige d’abord vers http://www.last.fm/group/CSRF/join/?confirm=apply, on leur demandera une validation vers http://www.last.fm/group/CSRF/join/?confirm=yes.

La solution consiste à faire en sorte que les utilisateurs se rendent sur ces deux pages dans un laps de temps assez court (probablement pour qu’il n’y ait pas de requêtes intermédiaires entre ces deux pages).

Il ne reste alors plus qu’à faire en sorte que les utilisateurs se rendent sur ces deux pages. Pour cela j’ai créé une news contenant deux balises img pointant vers les urls.

Ensuite j’ai fait en sorte que cette news soit vue dans différents groupes (linux, programmers, anti-emo, rancid…).

Il ne restait plus qu’à attendre que des visiteurs lisent ces news pour remplir le groupe.

Published January 08 2011 at 12:54

Cet article est sous licence CC BY 4.0 par l'auteur.