06.09.2018 | 21:51

Adam Haertle

O ciekawym błędzie w serwisie Wykop.pl (i pewnie nie tylko)

Jeden z Wykopowiczów odkrył prostą podatność, z której istnienia nie zdaje sobie sprawy część osób zajmujących się zawodowo tworzeniem witryn WWW czy ich bezpieczeństwem. Błąd nie jest krytyczny – ale warto o nim pamiętać.

Wykopowicz noisy odkrył w serwisie Wykop.pl, zgłosił i opisał rzadko omawianą podatność umożliwiającą przeprowadzenie ataków phishingowych z wyższym niż zazwyczaj prawdopodobieństwem sukcesu. Jako że noisy zdecydował się poinformować świat o tej podatności w formie wideo, warto także problem opisać w postaci tekstowej.

Na początek wideo

Jeśli macie kilka minut i lubicie patrzeć i słuchać, to zobaczcie film nagrany przez autora odkrycia.

Jeśli tak jak my wolicie słowo pisane, to czytajcie poniżej.

Błąd (czy też podatność?) opiera się na możliwości dodania przez użytkowników własnego linka, w który klikać będą inne osoby. Nie każdy serwis może być podatny, lecz jeśli osoby trzecie mogą dodać linki do swoich stron, to ryzyko istnieje. W przypadku Wykop.pl problem faktycznie występował i miał spore znaczenie – w końcu o dodawanie linków i klikanie w nie na Wykopie chodzi. Co zatem musiało być w linku i do czego prowadziło?

Standardowo linki prowadzące poza główną domenę na Wykopie miały atrybut

target='_blank'

aby kliknięcie w nie powodowało załadowanie zlinkowanej treści w nowym oknie. Po co? Głównie po to, aby użytkownik pozostał na stronie Wykopu (w jednej zakładce), a zewnętrzna treść pokazała mu się w nowej zakładce (którą po lekturze zamknie i wróci na Wykop, który ciągle ma otwarty w poprzedniej zakładce). Ma to sens biznesowy.

Problem zaczyna się, gdy strona, na którą trafił, jest złośliwa i zawiera kod, który podmienia poprzednią zakładkę. Taki kod jest trywialny:

window.opener.location = 'https://wykkop.pl/login';

Wykonanie tego kodu w nowej zakładce powoduje, że zmienia się adres strony poprzedniej – czyli w tym wypadku po zamknięciu strony nowej internauta trafia z powrotem na Wykop, który już nie jest Wykopem, tylko stroną atakującego. Strona taka może być odpowiednio spreparowana – noisy pokazał przykład strony logowania Wykopu, która zawiera informację o aktualizacji regulaminu. Sprytne, aktualizacja może być powodem wymuszenia ponownego logowania. Pewnie część użytkowników nie zwróci uwagi na to, że adres strony uległ zmianie i trzeba się ponownie zalogować. W ten sposób zapewne można ukraść niejedno hasło.

Źródło: film autorstwa noisy

Jak problem załagodzić

Aby utrudnić przeprowadzenie analogicznego ataku, wystarczy do linków wychodzących dodać odpowiedni parametr:

rel="noopener noreferrer"

Noisy zachował się odpowiedzialnie – zanim opublikował szczegóły swojego odkrycia, powiadomił Wykop i dał administracji serwisu czas na usunięcie problemu. Wykop wprowadził rekomendowane zmiany, dzięki czemu ten scenariusz ataku nie jest już możliwy do przeprowadzenia w opisywany sposób. Co ciekawe, już ponad 2 lata temu ten scenariusz ataku opisywał na Wykopie inny użytkownik – ale widocznie go nie testował.

Google nie uważa takiego ataku (zwanego fachowo tabnabbing) za godny wypłaty nagrody, ponieważ wynika on wyłącznie ze sposobu, w jaki zaprojektowano działanie przeglądarek i nie odkryto na razie rozwiązania, które pozwoli na jego globalne wyeliminowanie.

Pozostaje Wam zatem zachowywać czujność w sytuacji, gdy zalogowana sesja znienacka się wylogowywuje. Przed każdym niespodziewanym logowaniem warto sprawdzić adres strony. To trudne. Na co dzień nie mamy na to czasu – i na to liczą przestępcy.

Jeśli interesują Was podobne sztuczki, to zapraszamy na szkolenie z bezpieczeństwa aplikacji WWW, które prowadzimy już za 2 tygodnie w Warszawie – zostało jeszcze kilka miejsc. Na hasło „wykop.pl” 10% zniżki ;)

Powrót

Komentarze

  • 2018.09.07 00:00 informatyk

    Nic nowego, można się rozejść.

    Odpowiedz
    • 2018.09.07 07:57 wykopek

      Usuń konto!
      #pdk

      Odpowiedz
  • 2018.09.07 08:37 Grzesiek

    A wystarczy nie ustawiać idiotycznego parametru target, który tylko wkurza. Jak chcę otworzyć stronę w nowej zakładce, to jest na to kilka sposobów.

    Odpowiedz
    • 2018.09.07 09:20 Marek

      Na przykład?

      Odpowiedz
      • 2018.09.07 09:32 Mateusz

        Najprościej klikać ŚPM na link. Lub PPM i w menu konteksyowym wybrać „Otwórz link w nowej zakładce”

        Odpowiedz
        • 2018.09.07 10:45 Q-Back

          Zamiast PPM i menu polecam CTRL + LPM ;)

          Odpowiedz
      • 2018.09.07 09:37 ReadyG

        Środkowy klawisz myszki (rolka)

        Odpowiedz
    • 2018.09.07 10:34 Michaił Białkov

      Tylko ze _blanka nikt nie ustawia dla osób które sprawnie korzystają z internetu to jest konfiguracja dla osób, które nie potrafią otwierać w nowej karcie, chodzi o to, żeby osoba po przeczytaniu artykułu jak go zamknie nadal będzie korzystać z serwisu, pozdrawiam Michaił Białkov

      Odpowiedz
  • 2018.09.07 15:03 Example

    Czy dodanie nagłówka w nginxie może zminimalizować to zjawisko?

    Referrer-Policy „no-referrer”;

    Odpowiedz
    • 2018.09.08 17:00 Janusz

      Nie, ponieważ referrer odpowiada tylko za nagłówek referrer, czyli nie przekazywanie adresu z którego przeszlismy. Noopener czyści jsowy obiekt window.opener.

      Ps. Kto tworząc profesjonalną stronę zapomina dodawac noopenera do zewnętrznych linków? Znając takich mistrzów, pewnie i contet policy nie mają.

      Odpowiedz
  • 2018.09.07 17:13 hmm

    „wykkop.pl” to poprawna domena ?

    Odpowiedz
  • 2018.09.07 19:00 Blob

    Sposób od dawna stosowany przez guanoreklamy

    Odpowiedz
  • 2018.09.08 14:21 Dev

    Podatność ta jak i metody jej zapobiegania w środowisku developerskim jest znana od kilku lat.

    Proszę zatem nie mówić o „odkryciu”, co najwyżej o odświeżeniu przez noisyego, bo ujmuje to tym którzy to faktycznie odkryli i którzy do dobrych standardów programowania stosują się od dawna

    Poniższy artykuł pochodzi z 2016 roku i traktuje o tym właśnie.
    https://www.jitbit.com/alexblog/256-targetblank—the-most-underestimated-vulnerability-ever/

    Odpowiedz
  • 2018.10.31 12:58 #Gugi

    Props dla Noisiego ;)

    Ciekawy blad znaleziony ;D

    ALL SAFE _/

    Odpowiedz
  • 2023.08.09 15:17 umair

    i like this website thanks

    Odpowiedz

Zostaw odpowiedź do Mateusz

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

O ciekawym błędzie w serwisie Wykop.pl (i pewnie nie tylko)

Komentarze