4/7/2010
Napisaliśmy już tym dzisiaj na Blipie, ale ponieważ zalewacie naszą skrzynkę kolejnymi doniesieniami na temat tego błędu XSS w YouTube, zdecydowaliśmy, że poświęcimy mu osobny post :-)
XSS na YouTube
Do zilustrowania błedu HTML Injection/Persistent XSS posłużymy się jednym z videoclipów umieszczonych na YouTube:
Wstrzyknięty powyżej kod, który odpala markizę jest następującej postaci:
<script><script>IF_HTML_FUNCTION<wbr>?<h1>
<marquee><font color="red"><u>LOL What a faggot! HAHAHAAA!<script>
Funkcja filtrująca, z której korzysta YouTube poprawnie zamienia na encje (np. &lt;) tylko pierwsze wystąpienie tagu <script>, ale drugie wystąpienie tagu <script nie jest już normalizowane i wszstyko co po nim się znajduje zostanie na stałe dodane do strony z filmikiem. Dodanie kodu JavaScript jest możliwe poprzez podpięcie się pod zdarzenia np. <BODY OnLoad=”kod JS”>.
Link do przykładowego zainfekowanego video tutaj — ale uwaga, kliknięcie w niego za sekundę, może spowodować odpalenie złośliwego XSS-a (dodanego w komentarzu przez kolejnego użytkownika). Aby uchronić swoje ciasteczka przed kradzieżą, warto się wylogować przed kliknięciem :>
Błąd nie został jeszcze załatany, a Google chyba będzie miało nie lada problem, bo na YouTube “zainfekowane” są już wszystkie popularniejsze wideoklipy i zrobił się niezły burdel…
Aktualizacja 15:34
Za akcją masowego XSS-owania YouTube stoi najprawdopodobniej 4chan.org.
Aktualizacja 15:57
Google ciekawie (i szybko, bo po ~2h) zareagowało na XSS-a, ukrywając komentarze do klipów.
Teraz zamiast komentarzy pojawia się tekst:
Safety mode has hidden comments for this video. Show hidden comments
Wyświetlenie ukrytych komentarzy dalej jednak powoduje uruchomienie skryptów… Zapewne Google pracuje obecnie nad odfiltrowaniem wszystkich wstrzyknięć i niebawem całkowicie usunie błąd. W międzyczasie, zobaczcie filmiki demonstrujące atak:
Aktualizacja 22:59
Google usunęło wszystkie wystąpienia “script”. Game Over. Możecie wrócić do oglądania wykładu o filtrowaniu pakietów TCP/IP ;-)
Rozprzestrzenia się gorzej niż świńska grypa, teraz strona z tamtym video jest zasłonięta przez marquee z position:absolute; xD Oj dzieje się dzieje.. D:
No i mieliście rację – już ktoś postanowił lekko zmodyfikować ‘zawartość’ odnośnika…
Hehe sprawdzcie to http://www.youtube.com/watch?v=ynzmsxfpFHI&feature=related
screen: http://img571.imageshack.us/img571/6924/hacx.png
No i teraz trwa piękny FLAME na kolejne komentarze wykorzystujące ten błąd :D
Ale ostro jadą ;d Każdy po komentarzu i nizły bajzel się zrobił :P A tak btw wpisanie w komentarz powoduje chyba nieładowanie reszty strony ;]
Justin widzę im się spodobał http://www.youtube.com/watch?v=ucvkO0x-mL4
http://img401.imageshack.us/img401/4474/95788242.png
Co link to gorzej. Czy Google coś z tym robi w ogóle?!
Link do ostatniego video iJustine został ochydnie zhackowany (+18) http://www.youtube.com/watch?v=BHqdI5J7NXU&feature=popt00us11
O_o
A teraz przenoszą na strony porno …
Najprawdopodobniej? Ktoś dał na /b/ instrukcje jak coś tam wstrzyknąć i po prostu masa /b/tardów się z tym rzuciła. Być może nawet ktoś tam to wrzucił pod wpływem waszego wpisu ;]
ciastka, ciastkami, ale malware zadziała też na niezalogowanych :>
Już chyba od minuty załatany jest ten XSS, więc tytuł newsa można już zmienić
@Cyprian: Od 2 minut xss PRAWIE załatany, od minuty tytuł zmieniony. To się nazywa szybka reakcja, nie? :)
Nie chyba, tylko tak, 4chan stoi za tym
http://img693.imageshack.us/img693/4967/brandom1278246362366.png
Już coś robią, włącza się tryb bezpieczny :)
@Piotr “Wyświetlenie ukrytych komentarzy nie powoduje uruchomienia skryptów”
Jesteś pewien ;)?
jak to załatany? wprowadzono na razie “tryb bezpieczny” ale jak się kliknie “pokaż komentarze” to dalej to samo…
Tak, potwierdzam – kliknięcie na “pokaż komentarze” w dalszym ciągu je wyświetla, choć nie w każdym przypadku.
Spokojnie, na pewno za chwile uloza odpowiedniego regexpa odsiewajacego wstrzykniecia i puszcza go na produkcji ;)
Na 4chanie mówią, że wciąż dziala XSS na profilach i w tytułach/opisach filmów.
Juz chyba poprawione
naprawili :)
Już chyba załatali :)
http://www.youtube.com/watch?v=epeQwq-aYV0
3 komentarz
Tak psioczą niektórzy na google, a microsoft z łatką czekałby do drugiego wtorku miesiąca. :P
Przejrzałem kilka stron z komentarzami na yt i wygląda na to, że po prostu wykosili regexpem, “script”. W niemal każdym komentarzu pozostał “IF_HTML_FUNCTION?”.
a mógłby ktoś wytłumaczyć lub zarzucić linka do wytłumaczenia o co chodzi z tym “IF_HTML_FUNCTION”? Niestety, próby odpytania google o to kończą się znalezieniem podobnych do tego wpisów na róznych stronach/forach itp. Niestety, tam też nie mogę znaleźć wytłumaczenia tego zjawiska
Kto mi powie co robi i od czego jest to “IF_HTML_FUNCTION”?
If_html_function nie jest do niczego potrzebna, a jej obecność w każdym payloadzie można wytłumaczyć tym, że pojawiła się w pierwszym przykładzie opisujacym atak, ktorego kod był kopiowany przez tych, którzy go nie rozumieja, ale wiedza ze rozwala YouTube ;)
Pracuję przy filmikach i znikło kilka kont subskrybowanych przeze mnie. Ludzie psioczą, że ktoś im pokasował konta. Prawdopodobnie coś w stylu przechwycenia sesji i usunięcia kont wraz z klipami. Ciekawe czy uda się to odkręcić?
Bartko: to mozliwe Bo wystarczylo tylko przeslac podwojny script a za nim dowolny HTML — aby uzyskać js (wykrasc sesje, skadowac konto, przekierowac na inna stronę) można było podpiac się do zdarzeń np BODY onload=
Ta sytuacja jest doskonałym przykładem na to, że oczyszczanie HTML jest trudne. Zwłaszcza wówczas, gdy jakiś jego podzbiór jest dostępny. Tu do celów edukacyjnych dobrze wpisuje się przykład, który kiedyś udostępniłem: http://threats.pl/bezpieczenstwo-aplikacji-internetowych/oczyszczanie-html-jest-trudne
Z okazji tego XSS w Youtube zebrałem się w końcu w sobie i udostępniłem też nadesłane odpowiedzi oraz kod parsera wykorzystanego w przykładzie.
Zgaduję, że jest to jakaś wewnętrzna funkcja(?)
[…] z ciekawego zbiegu okoliczności, czyli XSS w YouTube, zebrałem się w końcu w sobie i udostępniłem rozwiązania konkursu przygotowanego przeze mnie […]
@up: Do niczego, ktoś tak napisał (zapewne na 4chanie) i reszta podłapała. Tutaj małe info: http://www.reddit.com/r/programming/comments/cluc5/html_injection_vulnerability_in_youtube_comments/c0thpoo
Ale wtopa. Mam coraz gorsze mniemanie o programistach, którzy tam pracują.
http://technowinki.onet.pl/wiadomosci/teledyski-justina-biebera-glownym-celem-atakujacych-youtube-a-hakerow,1,3317374,artykul.html
:)
CHIP trochę spłycił… no ale CHIP jest kierowany do miłosników Biebera więc pewnie dobrze trafia w target ;)
IF_HTML_FUNCTION?
tak sprawdzam ;p