AWWW-1st3.6-w13.tresc-1.0-Slajd13

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS)


Ataki typu Cross-Site Scripting (XSS, CSS) zaliczają się do bardzo groźnych, najczęściej polegają na kradzieży zmiennych Cookie z komputera ofiary poprzez wykonanie na nim złośliwego kodu JavaScript. Ideę tego ataku przedstawimy na przykładzie zilustrowanym na slajdzie.

Załóżmy istnienie internetowego serwisu aukcyjnego umożliwiającego użytkownikom zamieszczanie ogłoszeń sprzedaży rozmaitych przedmiotów. Zamieszczone ogłoszenia są gromadzone w bazie danych, a następnie udostępniane zainteresowanym użytkownikom. Załóżmy, że treść jednego z tych ogłoszeń ma postać taką jak przedstawiona na slajdzie. Zauważmy, że w treści ogłoszenia znajduje się celowo wprowadzony fragment kodu w języku JavaScript. Gdy ogłoszenie to będzie pobierane i wyświetlane przez klientów HTTP, kod ten będzie wykonywany. Przyjrzyjmy się teraz szczegółom tego kodu. Generowany jest pozornie niegroźny znacznik "img" służący do osadzenia na stronie obrazu graficznego. Jednak do adresu URL tego obrazu dołączana jest wartość atrybutu "cookie" obiektu "document", która w środowisku JavaScript reprezentuje łańcuch wszystkich zmiennych Cookie. W rezultacie, adres osadzanego na stronie obrazu graficznego będzie zawierać listę wszystkich zmiennych Cookie przechowywanych przez klienta HTTP. Przyjmując, że intruz posiada dostęp do serwera HTTP, do którego odnosił się adres URL obrazu graficznego, będzie on mógł odczytać tę listę z pliku dziennika serwera, w którym wspomniane żądanie zostanie zarejestrowane. Przykład przedstawiony na slajdzie pokazuje zarejestrowaną wartość zmiennej Cookie o nazwie "JSESSIONID", która akurat w tym przypadku reprezentuje identyfikator sesji użytkownika. Stąd już tylko krok dzieli nas od przeprowadzenia skutecznego ataku typu przejęcie sesji.

W celu uniknięcia tego typu ataków zaleca się, aby publiczne serwisy internetowe nie pozwalały użytkownikom na publikowanie treści zawierających zagnieżdżony kod JavaScript. Wymaga to implementacji stosownego kodu walidacji danych przekazywanych przez użytkowników. Podkreślmy, że przed atakami Cross-Site Scripting nie chroni nawet SSL.


<< Poprzedni slajd | Spis treści | Następny slajd >>