von AppSecure

Ich veröffentliche dies mit der Erlaubnis von Facebook im Rahmen der Richtlinie zur verantwortungsvollen Offenlegung. Sie haben diese Schwachstelle behoben.

In diesem Beitrag geht es um eine einfache Schwachstelle, die ich bei Facebook entdeckt habe und die ich nutzen konnte, um mich einfach und ohne Interaktion mit dem Benutzer in die Facebook-Konten anderer Benutzer einzuhacken.

Dadurch hatte ich vollen Zugriff auf die Konten anderer Benutzer, indem ich ein neues Passwort einrichtete. Ich konnte Nachrichten, ihre Kredit-/Guthabenkarten, die in ihrem Zahlungsbereich gespeichert waren, persönliche Fotos und andere private Informationen einsehen.

Facebook hat das Problem umgehend bestätigt, behoben und mich mit einem Kopfgeld in Höhe von 15.000 US-Dollar belohnt, basierend auf der Schwere und den Auswirkungen dieser Sicherheitslücke.

Wie der Hack funktionierte

Wenn ein Nutzer sein Passwort auf Facebook vergisst, hat er die Möglichkeit, das Passwort zurückzusetzen, indem er seine Telefonnummer und E-Mail-Adresse auf https://www.facebook.com/login/identify?ctx=recover&lwv=110 eingibt.

Facebook sendet dann einen 6-stelligen Code an diese Telefonnummer oder E-Mail-Adresse, den der Benutzer eingeben muss, um ein neues Passwort zu setzen.

Ich habe versucht, den 6-stelligen Code auf www.facebook.com zu erzwingen und wurde nach 10-12 ungültigen Versuchen blockiert.

Dann habe ich das gleiche Problem auf beta.facebook.com und mbasic.beta.facebook.com gesucht. Interessanterweise fehlte die Ratenbegrenzung für den Endpunkt „Passwort vergessen“.

Ich habe versucht, mein eigenes Konto zu übernehmen (gemäß den Facebook-Richtlinien darf man den Konten anderer Nutzer keinen Schaden zufügen) und konnte ein neues Passwort für mein Konto festlegen. Mit diesem Passwort konnte ich mich dann bei meinem eigenen gehackten Konto anmelden.

Ein Proof-of-Concept-Video des Hacks

Wie im Video zu sehen ist, konnte ich ein neues Passwort für den Benutzer festlegen, indem ich den Code, der an die E-Mail-Adresse und die Telefonnummer des Benutzers gesendet wurde, mit roher Gewalt erzwang.

Angreifbare Anfrage

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

Durch Brute Forcing des „n“ konnte ich erfolgreich ein neues Passwort für einen beliebigen Facebook-Benutzer setzen.

Disclosure Timeline

Feb 22nd, 2016 : Bericht an das Facebook-Team gesendet.

Feb 23rd, 2016 : Ich habe die Fehlerbehebung verifiziert.

2. März 2016 : Kopfgeld von 15.000 $ von Facebook ausgesetzt