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

21 lutego 2020, 15:52 | Aktualności | komentarzy 6
Eksperymentalnie, staramy się codziennie publikować minimum jedną podatność (nową, lub po prostu ciekawą) – wpisy można obserwować pod tagiem vulnz (tutaj RSS).

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:

POST /passwords/forgot HTTP/1.1
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

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. C64

    W przypadku gmaila ofiara nie musi klikać w link. Gmail skanuje linki w mailach.

    Odpowiedz
    • mhm, będzie jeszcze o tym mowa u nas niebawem (z ilustracją znalezionego przez nas buga w realnym systemie :)

      Odpowiedz
  2. Filip

    dzięki za większe screeny ;)

    Odpowiedz
    • tak, rzeczywiście pojawiły się w wyniku Waszych wcześniejszych komentarzy

      Odpowiedz
  3. Irinka22c

    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.

    Odpowiedz
    • Regon

      No znowu udowodniłaś że to jednak kobiety są góra! 😂

      Odpowiedz

Odpowiedz