Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak czasem można łatwo oszukać mechanizm przypominania hasła? #vulnz
Dzisiaj mała rzecz – a cieszy może czasem doprowadzić do poważnych problemów. Zapewne każdy z nas wielokrotnie korzystał z mechanizmu przypominania hasła – wpisujemy tam login lub e-mail i oczekujemy na wiadomość linkiem umożliwiającym reset hasła. Oczywiście link posiada tzw. token (odpowiednio długi losowy ciąg znaków) potwierdzający, że mogę zmienić hasło.
Gdzie może występować problem? W wielu miejscach ;) Ale jednym z nich jest sam formularz resetu hasła, gdzie możemy spróbować zmodyfikować nagłówek HTTP o nazwie host. Część aplikacji kopiuje tę wartość do maila z resetem hasła, który wysyłany jest do użytkownika. Przykład poniżej. Na początek atakujący w host wpisuje adres swojego serwera i podaje login użytkownika którego chce zaatakować:
Jeśli aplikacja jest podatna, do ofiary przychodzi całkiem normalny mail, ale w linkach do resetu hasła już nie ma realnej domeny, tylko ta wskazana wcześniej przez atakującego (w nagłówku host). Ofiara klika link do resetu hasła („tak z ciekawości, najwyżej jak będzie coś podejrzanego to nie podam żadnego hasła”) – w tym momencie ląduje na stronie atakującego, ale uwaga: w linku był też przekazany token umożliwiający reset hasła:
Finalnie atakujący używa tokenu do zresetowania hasła ofiary (łącząc się już z normalnym serwerem). Game over.
PS
Czasem warto pokombinować z innymi nagłówkami (gdy zmiana host nie przynosi rezultatu). Tutaj przykład z X-Forwarded-Host:
Host: login.newrelic.com
X-Forwarded-Host: testing-now.000webhostapp.com/.newrelic.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
…
–ms
W przypadku gmaila ofiara nie musi klikać w link. Gmail skanuje linki w mailach.
mhm, będzie jeszcze o tym mowa u nas niebawem (z ilustracją znalezionego przez nas buga w realnym systemie :)
dzięki za większe screeny ;)
tak, rzeczywiście pojawiły się w wyniku Waszych wcześniejszych komentarzy
Dostałam kiedyś (Niemcy, 2014 rok) zadanie napisania mechanizmu do resetu hasła. Napisała, przetestowała – testy na zielono. Master kłóci się ze mną, że mam w odpowiedzi na pierwszy request zwrócić token. Tłumaczę mu, że token jest tajny i ma być tylko w e-mailu. Godzinę uświadamiał sobie, że rzeczywiście nie można go zwracać w odpowiedzi, a tylko wysłać e-mailem. Masz cycki – uważają że mało wiesz, siedź cicho.
No znowu udowodniłaś że to jednak kobiety są góra! 😂