
Cross-site scripting, jest jednym z najbardziej popularnych ataków na aplikacje internetowe, w tym również te mobilne.
Na czym on polega i z czym to się je?
Najczęściej atak ten ma na celu wstrzyknięcie złośliwego kodu javascript, ale nie zawsze, czasami służy również do wykonania ataku typu CSRF.
Co otrzymuje osoba atakująca podczas klasycznego ataku XSS?
Z reguły dostęp do cookies, w których zapisane są dane dotyczące aktualnej sesji zalogowanego użytkownika. Ich kradzież oraz implementacja w swojej przeglądarce powoduje obejście mechanizmu logowania, co skutkuje otrzymaniem dostępu do konta użytkownika bez jego zgody.
Podstawowym podziałem na ataki XSS jest Stored i Reflected, gdzie pierwszy oznacza, że złośliwy kod pozostaje na stronie co najmniej jakiś czas i nie jest do jego wykonania wymagany specjalnie zmodyfikowany adres URL. Drugi z kolei działa tylko dla konkretnego żądania przeglądarki (o ile metodą GET, za pomocą socjotechniki możemy łatwo kogoś skusić do użycia tego adresu – to POST jest już duża bardziej zaawansowanym atakiem).
Pierwszy przypadek
Załóżmy, że na testowanej przez nas aplikacji znajdziemy mechanizm wyszukiwarki – który po wpisaniu szukanej frazy, przenosi nas na stronę z wynikami gdzie… wyświetla podaną przez nas kwerendę.
Najprostszym sposobem na weryfikację jest próba wyescape’owania się z tagu <input>.
W tym przypadku niech będzie to konstrukcja typu:
<input type="text" name="phrase" value="SZUKANA_FRAZA" />
Jak w tym przypadku powinien wyglądać prawidłowy payload (kod, po którego wstrzyknięciu uzyskamy żądanych efektów)?
Jeżeli na stronie nie istnieje żaden mechanizm filtrujący możemy spróbować użyć zamiast szukanej frazy ciągu znaków o treści:
"><script>alert(1)</script><"
Wówczas wyżej wskazany payload powinien pojawić się w kodzie przeglądarki w następującej postaci:
<input type"text" name="phrase" value=""><script>alert(1)</script><"" />
Jak łatwo zaobserwować bez problem wyszliśmy z ram konkretnego tagu I wykonaliśmy skrypt pokazujący monit o treści “1”.
Już niedługo ciąg dalszy artykułu…