15:15
4/7/2010

XSS w YouTube

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:

XSS na YouTube.com -- wstrzyknięcie marquee

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.

Post na 4chan.org zaczynający mass xss na YouTube

Aktualizacja 15:57
Google ciekawie (i szybko, bo po ~2h) zareagowało na XSS-a, ukrywając komentarze do klipów.

Reakcja YouTube'a na XSS-y w komentarzach

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 ;-)

Przeczytaj także:

36 komentarzy

Dodaj komentarz
  1. 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:

  2. No i mieliście rację – już ktoś postanowił lekko zmodyfikować ‘zawartość’ odnośnika…

  3. No i teraz trwa piękny FLAME na kolejne komentarze wykorzystujące ten błąd :D

  4. 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 ;]

  5. 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

  6. A teraz przenoszą na strony porno …

  7. 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 ;]

  8. ciastka, ciastkami, ale malware zadziała też na niezalogowanych :>

  9. 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? :)

  10. Nie chyba, tylko tak, 4chan stoi za tym
    http://img693.imageshack.us/img693/4967/brandom1278246362366.png

  11. Już coś robią, włącza się tryb bezpieczny :)

  12. @Piotr “Wyświetlenie ukrytych komentarzy nie powoduje uruchomienia skryptów”
    Jesteś pewien ;)?

  13. jak to załatany? wprowadzono na razie “tryb bezpieczny” ale jak się kliknie “pokaż komentarze” to dalej to samo…

  14. Tak, potwierdzam – kliknięcie na “pokaż komentarze” w dalszym ciągu je wyświetla, choć nie w każdym przypadku.

  15. Spokojnie, na pewno za chwile uloza odpowiedniego regexpa odsiewajacego wstrzykniecia i puszcza go na produkcji ;)

  16. Na 4chanie mówią, że wciąż dziala XSS na profilach i w tytułach/opisach filmów.

  17. Juz chyba poprawione

  18. naprawili :)

  19. Już chyba załatali :)
    http://www.youtube.com/watch?v=epeQwq-aYV0
    3 komentarz

  20. 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?”.

  21. 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

  22. 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 ;)

  23. 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=

  24. 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.

  25. Zgaduję, że jest to jakaś wewnętrzna funkcja(?)

  26. […] 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 […]

  27. @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

  28. Ale wtopa. Mam coraz gorsze mniemanie o programistach, którzy tam pracują.

    • CHIP trochę spłycił… no ale CHIP jest kierowany do miłosników Biebera więc pewnie dobrze trafia w target ;)

  29. IF_HTML_FUNCTION?
    tak sprawdzam ;p

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.