Aplikacje internetowe

Bełdziowe spojrzenie na aplikacje internetowe

XSS w serwisie Wirtualnej Polski

Często podawanym sposobem na zabezpieczenie się przed atakami typu XSS jest usunięcie z danych przesyłanych od użytkownika wszystkiego znajdującego się pomiędzy znakami „<„, „>”. Działanie takie jest jak najbardziej prawidłowe w przypadku, gdy korzystamy z niego świadomie. Wiara, że użycie „magicznej” funkcji strip_tags (w przypadku PHP) w pełni nas obroni jest złudna.

strip_tags( ) spełnia swoją rolę, gdy wartość przesłana przez użytkownika nie jest umieszczana jako atrybut istniejących tagów HTML. W przeciwnym wypadku jego rola sprowadza się do ograniczenia atakującemu pola manewru.

Jako przykład filtracji tylko tagów HTML może posłużyć nam serwis plotkarski Wirtualnej Polski NoCoTy.pl. Na podstawie adresu URL tworzy on bezpośrednie łącza do poszczególnych komentarzy dodanych przez użytkowników, przy okazji kasując występujące w nim tagi.

Odpowiednio modyfikując adres URL możemy przemycić dodatkowe atrybuty użyte podczas generowanie linków. I tak wejście pod adres:

http://nocoty.pl/gid,11304874,img,11304881,kat,1013543,title," onmousemove="javascript:alert(document.cookie)",galeria.html


wp_xss1

spowoduje wyświetlenie ciastek użytkownika po najechaniu przez niego na, któryś z linków komentarzy znajdujących się na samym dole strony. Mimo że udało nam się przemycić XSS’a wykonanie jego może być problematyczne – użytkownik musi przewinąć kilka razy ekran, a następnie najechać kursorem na odpowiednie miejsce.

Problem ten możemy zlikwidować dodając kolejny atrybut:

http://nocoty.pl/gid,11304874,img,11304881,kat,1013543,title," onmousemove="javascript:alert(document.cookie)" style="position:fixed;width:100%;height:100%;top:0",galeria.html


wp_xss1

Dodanie ostylowania spowoduje, że linki zostaną przeniesione z dołu strony na górę, a na dodatek będą zajmowały całą powierzchnię strony.

Powyższy, prosty przykład pokazuje, że korzystając z samych atrybutów napastnik ma niemal identyczne możliwości jak w przypadku wstrzyknięcia tagów HTML.

Aby skutecznie filtrować dane przesyłane przez użytkownika pod kątem kodu HTML wystarczy przeczytać notkę Obsługa HTML.


Tagi: , , ,
Kategoria: Bezpieczeństwo, BugTraq


1 komentarz

  1. kamil napisał(a):

    takich bugow jest multum, nie tylko na wp, ale i na portalach onetu czy o2, nie ma sie czym podniecac ;]

Dodaj komentarz