Jak ZnanyLekarz mógł przekierować użytkownika na dowolną, potencjalnie niebezpieczną stronę www?

in #polish6 years ago (edited)

  #fajne-logowanie

Kilka dni temu na ZnanyLekarz.pl zauważyłem, że logując się w serwisie trafiam na tę samą stronę, z której wszedłem w panel logowania. Z czystej ciekawości chciałem sprawdzić jak to robią, więc wylogowałem się i najechałem ponownie na przycisk zaloguj. Po najechaniu zauważyłem, że w URLu przekazują adres strony, na której aktualnie jestem, jako parametr _redirect
 

Rozwiązanie w porządku, nie mam nic do zarzucenia, ba, nawet je lubię bo sporo serwisów olewa tę funkcjonalność ale niestety okazało się że jest mały myczek... 

 #a-jednak-niefajne-logowanie

Takie rozwiązanie pozwala przekierować użytkownika na stronę, którą poprzednio czytał. Dla bezpieczeństwa aplikacja powinna to zrobić tylko w obrębie wybranych domen jak na przykład znanylekarz.pl, tylko najpierw aplikacja musi sprawdzić czy podana domena znajduje się na liście dozwolonych przekierowań, a tego niestety zabrakło…

Okazało się, że możliwe jest podanie własnego adresu URL w parametrze _redirect, tym samym umożliwiając przekierowanie użytkownika na dowolną stronę poza domeną znanylekarz.pl


https://www.znanylekarz.pl/social-connect/pl_sso?_redirect=https%3A//steemit.com/@kamilzielinski

 Jeśli użytkownik był już zalogowany to przekierowanie następowało natychmiast po kliknięciu w link. 

 #czy-to-w-ogole-jest-niebezpieczne

Używając tego błędu atakujący mógłby przekierować użytkownika na własną stronę serwującą np. exploity lub podrobić stronę logowania ZnanyLekarz i mógłby wyciągnąć od użytkowników dane logowania (a na podstawie historii odwiedzanych lekarzy można wiele się o człowieku dowiedzieć). No bo kto by nie kliknął w link do serwisu któremu ufa?

Pewnie część z Was w głowie sobie myśli “pff, przecież rozpoznałbym po przekierowaniu, że to nie jest ich prawdziwa strona znanyIekarz.pl i nie podałbym tam swoich danych logowania” - ok, więc ilu z Was zauważyło że w tym cytacie to nie jest adres prowadzący do znanylekarz.pl ale do znanyiekarz.pl (w adresie jest wielka litera I zamiast L) ;) ?

Ten sam sposób mogłaby wykorzystać osoba, próbująca uzyskać wasze dane. Stworzyłaby kopię serwisu pod podobną domeną, a tam czekałby na was formularz wyłudzający dane.


BTW. domena nadal jest do wzięcia


 #latwo-przyszlo-latwo-poszlo

Błąd zgłosiłem kilka dni temu - 8 października 2018 a dziś - czyli 10 października 2018 -  została wgrana poprawka na produkcję, więc użytkownicy mogą się czuć bezpieczni (ale zachowajcie zdrowy rozsądek).

Dzięki ZnanyLekarz za szybką reakcję i fix! :)


 

Sort:  

Congratulations @kamilzielinski! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Do not miss the last post from @steemitboard:

Carnival Challenge - Collect badge and win 5 STEEM
Vote for @Steemitboard as a witness and get one more award and increased upvotes!

Coin Marketplace

STEEM 0.16
TRX 0.17
JST 0.029
BTC 69187.87
ETH 2486.25
USDT 1.00
SBD 2.53