door AppSecure
Ik publiceer dit met toestemming van Facebook volgens het beleid voor verantwoorde openbaarmaking. Zij hebben deze kwetsbaarheid verholpen.
Dit bericht gaat over een eenvoudige kwetsbaarheid die ik op Facebook heb ontdekt en die ik had kunnen gebruiken om de Facebook-accounts van andere gebruikers eenvoudig en zonder enige interactie van de gebruiker te hacken.
Dit gaf me volledige toegang tot de account van andere gebruikers door een nieuw wachtwoord in te stellen. Ik kon berichten bekijken, hun creditcards/debetkaarten die waren opgeslagen onder hun betaalgedeelte, persoonlijke foto’s en andere privégegevens.
Facebook erkende het probleem onmiddellijk, repareerde het en beloonde me met een premie van 15.000 dollar op basis van de ernst en de impact van deze kwetsbaarheid.
Hoe de hack werkte
Wanneer een gebruiker zijn wachtwoord op Facebook vergeet, heeft hij een optie om het wachtwoord te resetten door zijn telefoonnummer en e-mailadres in te voeren op https://www.facebook.com/login/identify?ctx=recover&lwv=110.
Facebook stuurt dan een 6-cijferige code naar dit telefoonnummer of emailadres die de gebruiker moet invoeren om een nieuw wachtwoord in te stellen.
Ik probeerde de 6-cijferige code te brute-forcen op www.facebook.com en werd na 10-12 ongeldige pogingen geblokkeerd.
Daarna keek ik uit naar hetzelfde probleem op beta.facebook.com en mbasic.beta.facebook.com. Interessant genoeg ontbrak de beperking van de snelheid van het wachtwoord vergeten eindpunt.
Ik probeerde mijn eigen account over te nemen (volgens het beleid van Facebook mag je geen schade toebrengen aan de accounts van andere gebruikers) en was succesvol in het instellen van een nieuw wachtwoord voor mijn account. Ditzelfde wachtwoord kon ik vervolgens gebruiken om in te loggen op mijn eigen gehackte account.
Een proof of concept video van de hack
Zoals je in de video kunt zien, was ik in staat om een nieuw wachtwoord voor de gebruiker in te stellen door brute forcing van de code die naar hun e-mailadres en telefoonnummer was gestuurd.
Vraag om kwetsbaarheid
POST /recover/as/code/ HTTP/1.1
Host: beta.facebook.com
lsd=AVoywo13&n=XXXXX
Brute forcing van de “n” heeft me in staat gesteld om voor elke Facebook-gebruiker een nieuw wachtwoord in te stellen.
Tijdlijn voor openbaarmaking
Feb 22, 2016 : Rapport verzonden naar Facebook team.
Feb 23rd, 2016 : Verifieerde de fix van mijn kant.
Maart 2, 2016 : Bounty van $15.000 toegekend door Facebook
Geef een antwoord