Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak można było złamać komuś hasło na Instagrama
Dzisiaj w serii #vulnz: bruteforce hasła to jeden z najprostszych ataków, jakie można przeprowadzać na aplikacje webowe, a zarazem nadal zadziwiająco skuteczny. Polega w największym skrócie na tym, że dla zadanej nazwy użytkownika próbujemy masowo zgadywać jego hasło. Przykładowo, jeśli strzelimy, że nazwą użytkownika jest admin
, możemy następnie próbować zgadywać według słownika kolejne możliwości hasła, np.
admin
admin1
qwerty123
- itp.
Atak jest bardzo powszechny, stąd wiele aplikacji jest przed nim zabezpieczonych, blokując np. liczbę prób logowania jaką można wykonać dla danego konta w danej jednostce czasu.
1,5 tygodnia temu @samm0uda pokazał pewien wariant ataku bruteforce (na który często trafiamy też na pentestach), który znalazł w Instagramie. Domyślnie w Instagramie jest ograniczenie do 20 prób logowania z różnymi hasłami na jedno konto w jakiejś jednostce czasu (autor nie podaje w jakiej). Autor zauważył jednak, że w pewnym endpoincie nie ma ograniczeń prób logowania, gdy próbuje się zalogować z jednym hasłem na wiele kont. Innymi słowy, mogliśmy wziąć sobie listę np. stu tysięcy kont na Instagramie i sprawdzać, czy którekolwiek z nich ma ustawione hasło Instagram123!
. Mechanizmy Instagrama nie wykryłyby w takim przypadku żadnych złośliwych prób.
Błąd został zgłoszony do Instagrama w ramach bug bounty i została wypłacona nagroda, choć autor nie pochwalił się jaka.
Podsumowując: jeśli zabezpieczamy się w aplikacji przed atakiem bruteforce, pomyślmy też o przypadku, w którym ktoś próbuje jednego hasła na wiele nazw użytkowników.
— Michał Bentkowski (@SecurityMB)
Serio ktoś zapłacił za podstawową funkcję bruteforce o.o
Czy ten rodzaj ataku to nie przypadkiem password spraying?
Generalnie to jest najbardziej sensowny atak obecnie, poza atakiem „wpisz cokolwiek, byleby zablokować komuś konto i blokuj je do skutku”. Tak duże serwisy powinny być na to odporne ;-)
Czasem idzie wychaczyć bugbounty, gdzie w scope nie ma wykluczenia na brute force. Rzadko, ale się zdarzają. Raz taki wyłapałem, ale ubiegł mnie typo 2 tyg wcześniej ze zgłoszeniem. Dostał 500$ :)
Janek możemy zamienić parę słów?