Dziurawy blox.pl - ciąg dalszy

Wykryty przez nas błąd w serwisie blogowym blox.pl został usunięty. Ponad 115 000 blogerów nie jest już zagrożonych kradzieżą bloga i konta poczty elektronicznej. Na czym naprawdę polegała usterka w blox.pl?

Wykrytą w blox.pl usterkę zgłosiliśmy do działu technicznego serwisu wczoraj około południa. Po drobnych trudnościach komunikacyjnych informacja o błędzie trafiła do właściwych osób i dzisiaj rano "dziura" w blox.pl została usunięta. Blogi i konta pocztowe użytkowników są już bezpieczne. Na czym dokładnie polegał znaleziony błąd?

(Uwaga: prezentowane zrzuty ekranów zostały wykonane przed wprowadzeniem poprawek do blox.pl) Nieautoryzowany ciąg znaków umieszczony w kodzie bloga może tylko zmieniać nagłówki postów...

(Uwaga: prezentowane zrzuty ekranów zostały wykonane przed wprowadzeniem poprawek do blox.pl) Nieautoryzowany ciąg znaków umieszczony w kodzie bloga może tylko zmieniać nagłówki postów...

Dowolny blog w serwisie blox.pl można odwiedzić wpisując w przeglądarce internetowej adres typu http://nazwa_bloga.blox.pl/html. Wykryliśmy, że tekst wpisany w pasku adresu przeglądarki internetowej nie był poprawnie filtrowany przez serwis blox.pl, co umożliwiało nieautoryzowane dodanie niemal dowolnego ciągu znaków do kodu strony w serwisie blox.pl. Taki ciąg znaków mógł zawierać po prostu napis, który pojawi się w wyświetlonej stronie. Sprytny włamywacz mógł jednak podać specjalny ciąg znaków, umożliwiający wstawienie w kod witryny skryptu JavaScript lub dowolnego znacznika HTML. To poważne niebezpieczeństwo! Krótki kod w JavaScript pozwalał na przesłanie ciasteczka (cookie) internauty na serwer włamywacza. Ciasteczka zawierają ważne dane, np. identyfikator sesji, które mogą posłużyć do podszycia się pod innego użytkownika blox.pl. Włamywacz mógł podać (np. w komentarzu do wiadomości na cudzym blogu) odpowiednio spreparowany adres URL, a ciasteczko zapisane przez blox.pl i zawierające identyfikator sesji internauty, trafiłoby np. na konto pocztowe włamywacza. Zagrożenie było realne. Przygotowany przez nas prosty exploit potwierdził, że wykonanie takich działań było możliwe.

...może jednak też zawierać kod JavaScript, np. wyświetlający zawartość ciasteczek użytkownika.

...może jednak też zawierać kod JavaScript, np. wyświetlający zawartość ciasteczek użytkownika.

Co więcej, za pomocą specjalnie przygotowanego adresu można było dodać do kodu strony niemal dowolne znaczniki HTML. Odpowiednio przygotowany odnośnik mógł prowadzić na główną stronę blox.pl, która była wtedy wyświetlana w zmodyfikowanej postaci, np. formularz logowania wysyłał nazwę i hasło użytkownika nie do serwerów blox.pl, ale do włamywacza. I w tym przypadku przygotowany przez nas exploit potwierdził, że możliwe było przechwycenie nazwy i hasła użytkownika, który dokonał logowania po kliknięciu w złośliwy odnośnik.

Prosty exploit umieszczony w testowym blogu założonym na blox.pl udowodnił, że atak jest możliwy. Ofiara musiała tylko kliknąć odnośnik w komentarzu, chociaż uważnego i doświadczonego internautę zaniepokoiłby dziwny adres wyświetlany na dole okna przeglądarki...

Prosty exploit umieszczony w testowym blogu założonym na blox.pl udowodnił, że atak jest możliwy. Ofiara musiała tylko kliknąć odnośnik w komentarzu, chociaż uważnego i doświadczonego internautę zaniepokoiłby dziwny adres wyświetlany na dole okna przeglądarki...

Jak sprawdziliśmy, serwis blox.pl okazał się podatny na ataki typu XSS (Cross Site Scripting) i CSRF (Cross Site Request Forgeries), wykorzystujące tzw. wstrzyknięcie JavaScript (ang. JavaScript injection) jak i poprzez podstawione znaczniki HTML. Co istotne, użycie wstrzyknięcia JavaScript nie było konieczne do przeprowadzenia ataku...

Główna strona blox.pl z wstrzykniętym kodem włamywacza. Wygląda identycznie, jedynie pasek adresu w przeglądarce zdradza, że dzieje się coś niedobrego. Cierpliwy włamywacz mógł jednak przygotować całkowicie nieczytelny kod wyświetlany w pasku adresu... Po zalogowaniu przez taką stronę nazwa i hasło

Główna strona blox.pl z wstrzykniętym kodem włamywacza. Wygląda identycznie, jedynie pasek adresu w przeglądarce zdradza, że dzieje się coś niedobrego. Cierpliwy włamywacz mógł jednak przygotować całkowicie nieczytelny kod wyświetlany w pasku adresu... Po zalogowaniu przez taką stronę nazwa i hasło

Zagrożenie dotyczyło ponad 115 000 kont blogerów korzystających z blox.pl, a związane było z naprawdę niewielką usterką w kodzie serwisu. Wprawny i złośliwy włamywacz mógł przejąć konto praktycznie każdego blogera, jeśli tylko ten ostatni kliknął w podstawiony odnośnik, a następnie dokonał logowania. Przypomnijmy, logowanie prowadzące do kradzieży konta odbywałoby się przez oficjalną stronę blox.pl, zawierającą tylko nieznaczną modyfikację wprowadzoną przez włamywacza. Doświadczony internauta, przywykły do sprawdzania, jakie odnośniki naprawdę zamierza otworzyć, mógłby zauważyć podejrzaną sekwencję znaków. Czy jednak wszyscy dokładnie sprawdzają klikane odnośniki i czy wszyscy potrafią odróżnić złośliwy kod od np. długiego ciągu parametrów? Z pewnością nie, a błąd w blox.pl mógł kosztować nie tylko utratę konta na blox.pl, ale także utratę konta poczty elektronicznej oferowanego przez portal gazeta.pl (dostęp to konta pocztowego odbywa się za pomocą tej samej nazwy użytkownika i tego samego hasła).

Uwaga: oficjalne stanowisko firmy Agora, właściciela serwisu blox.pl, opublikujemy gdy tylko zostanie udostępnione.


Zobacz również