Luka Cross-Site Scripting w Onet.pl

W serwis internetowym Onet.pl Kartki występuje dość dobrze znana dziura w bezpieczeństwie zwana Cross-Site Scripting (XSS) która umożliwia zdobycie internetowego identyfikatora, numer sesji albo hasła ofiary, niezależnie od jakości zabezpieczeń (jak SSL) chroniących dany serwis.

Jak poinformował nas Piotr Bulczak, 28 września powiadomił Onet.pl o występującym błędzie podając dwa przykłady. Odpowiedź otrzymał po dwóch dniach informującą, że problem został rozwiązany. Zostały również sprawdzone inne serwisy – nie znaleziono podobnych luk w bezpieczeństwie. W odpowiedzi poinformowano Piotra również, że „nie jest to poważna usterka w bezpieczeństwie”.

Błąd, który został już naprawiony dotyczył m.in. przekierowania witryny z Onet.pl do WP.pl

http://kartki.onet.pl/kartki.html?IM=Onet<script%20language=’javascript’>window.navigate(‚http://www.wp.pl’);</script>WP%20w%20Onet</a>

oraz wyświetlenia prostego alertu w Java Script:

http://kartki.onet.pl/kartki.html?IM=Onet<script%20language=’javascript’>alert(„Boo!”);</script>

Piotr po otrzymaniu odpowiedzi natychmiast sprawdził czy poprawiono kod serwisu. Niestety okazało się, że poprawiono jedynie luki, które zostały przesłane w korespondencji do Onetu. Inne luki pozostawiono. Piotr ponownie poinformował Onet.pl o tym problemie 1 października, ale tym razem do dnia dzisiejszego nie dostał odpowiedzi.

Przykładowy link który pokazuje sesje z cookies wygląda następująco:

http://kartki.onet.pl/kartki.html?IM=Onet&r=<script>alert(document.cookie)</script>

Warto dodać jeszcze, że zaprezentowany błąd nie występuje tylko na stronach Onet.pl – wręcz przeciwnie. Błąd taki można śmiało wykorzystać na innych serwisach internetowych, które umożliwiają przesłanie pewnego ciągu znaków do zmiennej występującej na witrynie.