par AppSecure

Je publie ceci avec la permission de Facebook dans le cadre de la politique de divulgation responsable. Ils ont corrigé cette vulnérabilité.

Ce post concerne une vulnérabilité simple que j’ai découverte sur Facebook et que j’aurais pu utiliser pour pirater les comptes Facebook d’autres utilisateurs facilement et sans aucune interaction avec l’utilisateur.

Cela m’a donné un accès complet au compte d’autres utilisateurs en définissant un nouveau mot de passe. J’ai pu consulter des messages, leurs cartes de crédit/débit stockées sous leur section de paiement, des photos personnelles et d’autres informations privées.

Facebook a reconnu le problème rapidement, l’a corrigé et m’a récompensé avec une prime de 15 000 $ US en fonction de la gravité et de l’impact de cette vulnérabilité.

Comment le piratage a fonctionné

Lorsqu’un utilisateur oublie son mot de passe sur Facebook, il a une option pour réinitialiser le mot de passe en entrant son numéro de téléphone et son adresse e-mail sur https://www.facebook.com/login/identify?ctx=recover&lwv=110.

Facebook envoie alors un code à 6 chiffres à ce numéro de téléphone ou à cette adresse électronique que l’utilisateur doit saisir pour définir un nouveau mot de passe.

J’ai essayé de forcer brutalement le code à 6 chiffres sur www.facebook.com et j’ai été bloqué après 10-12 tentatives invalides.

J’ai ensuite cherché le même problème sur beta.facebook.com et mbasic.beta.facebook.com. Il est intéressant de noter que la limitation de débit était absente du point de terminaison mot de passe oublié.

J’ai essayé de prendre le contrôle de mon propre compte (selon la politique de Facebook, vous ne devriez pas faire de mal aux comptes des autres utilisateurs) et j’ai réussi à définir un nouveau mot de passe pour mon compte. Je pouvais ensuite utiliser ce même mot de passe pour me connecter à mon propre compte piraté.

Une vidéo de preuve de concept du piratage

Comme vous pouvez le voir dans la vidéo, j’ai pu définir un nouveau mot de passe pour l’utilisateur en forçant brutalement le code qui a été envoyé à son adresse e-mail et à son numéro de téléphone.

Demande vulnérable

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

Le brute forcing du « n » m’a permis avec succès de définir un nouveau mot de passe pour n’importe quel utilisateur de Facebook.

Disclosure Timeline

22 février 2016 : Rapport envoyé à l’équipe Facebook.

23 févr. 2016 : Vérification de la correction de mon côté.

2 mars 2016 : Prime de 15 000 $ attribuée par Facebook

.