10:25
27/6/2013

Pewien pentester zgarnął aż 20 000 dolarów od Facebooka w nagrodę za zgłoszenie błędu w ramach programu Bug Bounty. Błąd pozwalał w prosty sposób przejąć konto dowolnego użytkownika na Facebooku. Poniżej szczegóły.

SMS z hasłem od Facebooka

Podatność znajdowała się w mechanizmie dowiązania numeru telefonu do konta na Facebooku. Skrypt /ajax/settings/mobile/confirm_phone.php przyjmował dwie zmienne…

  • code — odpowiadającą za kod wysyłany SMS-em użytkownikowi w celu potwierdzenia, że dany numer rzeczywiście należy do niego
  • profile_id — ID profilu zalogowanego użytkownika

…ale pozwalał pod tę drugą podstawić ID profilu dowolnego użytkownika, co powodowało, że nasz numer telefonu dowiązywaliśmy do nieswojego konta.

Spreparowany formularz

Spreparowany formularz dowiązujący nasz numer do konta ofiary

Aby przejąć czyjeś konto należało więc:

  • Wysłać literę F pod numer telefonu Facebooka (w UK: 32665)
  • Spreparować żądanie HTTP do skryptu confirm_phone.php z otrzymanym SMS-em kodem i z ID profilu ofiary
  • Zainicjować “przypomnienie hasła” na koncie naszej ofiary wybierając przypomnienie via SMS

Facebook już załatał błąd.

Przeczytaj także:


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

25 komentarzy

Dodaj komentarz
  1. Ciekawy jestem czy będą dochodzić do programisty, który zepsuł i obetną mu z pensji coś :)

    • Sugerujesz że nie maja testów akceptacyjnych po zmianach na FB? :)

  2. Az ciezko uwiezyc w taki trywialny blad. Jak mozna nie zweryfikowac ID przekazanego przez klienta?

    • Teraz nagle wszyscy mądrzy, a jednak potrzeba było kilku lat aby ktoś na to wpadł :>

    • Pewnie w poprzednich wersjach chodziło poprawnie ;)

    • To dość trywialny błąd, ale nikt nie mówi, że łatwo go było wyłapać.

    • To nie błąd facebooka jest trudny do uwierzenia, ale wiara ludzi w jego bezpieczeństwo.

  3. Teraz sprawdźcie czy w innych serwisach takiego błędu nie ma, możecie zgarnąć trochę kasy:P

    • Albo wyrok ;)

  4. Niebezpiecznik powinien pomyslec o Forum (lub czyms alternatywnym). Wszyscy zainteresowani mogli by dzielic sie swoimim “przemysleniami” takimi jak powyzej a potem dzielili by krocie pomiedzy siebie :D

    • Wyborny pomysł! “Niebezpieczne forum”… Wszystkie dane
      użytkowników będą w głębokim ukryciu
      niebezpieczne-forum.pl/f/r/a/j/e/r/z/y.txt, a wśród danych mail,
      hasło plain textem, numer telefonu (w końcu dwuskładnikowe
      uwierzytelnianie!), i numer karty kredytowej jako mechanizm do
      resetu hasła. Jeszcze tylko numer dowodu osobistego, albo pesel na
      potwierdzenie ew. pełnoletności i jesteśmy w domu!

    • To prawie jak facebook.

    • Jeśli niebezpiecznik by miał mieć forum, to faktycznie baza by mogła być w plaintext+hashe haseł w czymślepszym od MD5. W końcu PK i spółka od dawna edukują ludzi, żeby nie podawać wrażliwych danych, nawet im. Jeśli wycieknie mój adres one-minute mail, nick, Torowe IP i mocny hash mocnego hasła, to czym się przejmować? Jeśli wycieknie mój służbowy adres email, stałe IP i hash MD5 hasła, tego samego co w mailu, to jest problem ;)

  5. Tylko 20 000 USD? To jest tyle co w twarz splunąć od FB, taki transfer został by cudnie opodatkowany.

    FB stać na 20 000 BTC

    • Stawka została wymyślona wcześniej, więc pewnie nie pomyśleli, że wygra aż tak poważny błąd.

    • Zatem, Hell4Ge, za Twoje znalezione bugi ile Facebook Ci zapłacił?

    • to, że ktoś jest bogaty nie oznacza, że musi adekwatnie dawać tyle kasy. skoro są chętni na 20k $ co w Polsce jest dobrą roczną pensją i można sobie kupić za to fajny samochód. Nawet w USA to sporo kasy, a przy okazji możliwość wypromowania swoich umiejętności i robienia tego co się lubi.

  6. Tematy zastępcze :) Nowe pojemniki na śmieci będą miały
    chipy rfid.

  7. Facebook jest zabezpieczony, aż za bardzo, do tego stopnia,
    że ciężko mi się zalogować na własne konto i ogólnie korzystać z
    portalu ;) Ciągle się upewnia czy ja to na pewno ja i każe
    przepisywać tekst z obrazków, odbierać jakieś smsy i emalie. Musi
    mieć sto procent pewności, że inwigiluje właściwą osobę, to tylko o
    to chodzi w tych zabezpieczeniach.

    • Żeby się upewnić, że robią “kartotekę” twojej osoby a nie
      innej. Dane muszą się zgadzać :)

    • Nie doczytałem do końca i niepotrzebnie napisałem.

  8. [quote]Nowe pojemniki na śmieci będą miały chipy rfid[/quote]
    A u nas będzie obowiązywał system workowy :P

  9. Są pieniądze, są pentesterzy. Nawet ‘chakierek’ nie oprze się ich pokusą, to się bardziej opłaca niż robienie z siebie herosa i podpisywanie się jako anonim na facebrukowych kontach.

  10. Zastanawia mnie, po co oczekiwać od użytkownika zmiennej profile_id? Błąd w kontekście użycia, czy może element zarządzania powiązanymi kontami (choć nie wiem czy coś takiego tam istnieje)? Zna ktoś logiczne wytłumaczenie?

  11. Na wstępie – nie znam sie :P Pytanie moje jest takie – dobrze rozumiem, że dwuetapowy system uwierzytelniania w tym przypadku tez nic nie dał? bo kod został wysłany pod ten podpięty telefon jo? :P

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: