Wykop i XSS - czyli przejmujemy kontrolę

Niedawno została oddana Internautom trzecia wersja popularnego serwisu Wykop.pl. Istotną zmianą było przepisanie całego Wykopu na PHP - już przed 'oficjalną premierą' pojawiły się pierwsze fale krytyki dotyczące tej zmiany. Zwykły użytkownik poza zmienioną szatą graficzną nie dostał nic nowego, ale czy na pewno? W tym wpisie przedstawię 'nowe możliwości' Wykopu, o których nie wie jeszcze nikt (z drobnymi wyjątkami), włącznie z samymi twórcami Wykopu.

Użytkownicy po zmianie spodziewali się nowych funkcji: głosowania na komentarze (tak jak na Digg.com), czarnej listy użytkowników, prostej możliwości wstawienia własnego awatara (zamiast gravatar.com), czy też opcji 'zakop' w formie takiej, z jakiej można było korzystać na początku istnienia Wykopu (minusowe głosy). Nic z tych rzeczy sie nie pojawiło.

Okazuje sie jednak, że 'drobne' błędy programistów Wykopu, stały się przepustką do tworzenia nowych funkcji we własnym zakresie. Można żartobliwie powiedzieć, że Wykop nie jest już WEB 2.0, ale 3.0 (WEB 3.0 - czyli zrób sobie to sam).

Komentarze - formatowanie linków

Programiści nie przewidzieli takiej funkcji, ale ona istnieje - zobacz prezentowany przykład. To tylko taki mały, może nawet (nie) przydatny bajer ...

Funkcja staje sie ciekawsza, gdy do formatowania wyglądu linków użyjemy CSS'a: przykład (kopia).
Jak widać, linki mogą przybierać również formę obrazkową. Możliwe jest również pozycjonowanie linków względem różnych elementów (position: absolute / relative / fixed)

Komentarze - poznaj jQuery

Chyba każdy chcąc, czy nie, spotkał sie z nazwą jQuery. To mała, elastyczna biblioteka JavaScript z dużymi możliwościami. Wykop opiera swoje działanie właśnie na niej.
Programiści znów 'niechcący' udostępnili nam ciekawe funkcje: prawie wszystkie możliwości JS są dostępne dla komentujących. Zobacz przykład (kopia strony).
Oczywiście możemy korzystać z 'zwykłego JS', ale gdy mamy do dyspozycji takie narzędzie ... ;)

Jakie możliwości daje mam jQuery? Odpowiedź znajdziemy na tej stronie.

Ponadczasowość komentarzy

Kolejna nowa funkcja pozwala manipulować czasem. Możemy skomentować znalezisko (link) zanim jeszcze się pojawi - przykład (pierwszy komentarz).

Prawdopodobnie koleś edytował linka i zapisała się data edycji. Ale to tylko spekulacje ;)

To nie była wina błędu podczas edycji linka - ten komentarz po prostu istniał jeszcze przed jego dodaniem ;)

Możemy również manipulować miejscem, w którym zostanie wstawiony nasz komentarz:

Swoją drogą: zauważyłeś że nasz komentarz jest ponadczasowy ?:> Wszystkie inne są powyżej :D Głosujmy - za pozostawieniem tej luki. Będziemy miejsca reklamowe sprzedawać;)

Teraz i Ty możesz zostać moderatorem
Moim zdaniem to jest najciekawsza funkcja ;)
Każdy user ma możliwość edycji komentarzy, ale nie tylko swoich ...
Odkryłem tą lukę po wprowadzeniu nowej wersji Wykopu - jednak co dobre, szybko się kończy. Ktoś zauważył, że 'bawię się w moderatora' (edytowałem 2 komentarze w ramach testów) - funkcja została zablokowana. Ale nie na długo.
Po raz kolejny została 'przywrócona' (odkryta) przez użytkownika u.Ghost. Z tego co zauważyłem, moderatorami 'bez uprawnień' jest już kilka osób - nie ma się czemu zdziwić: wystarczy trochę podstawowej wiedzy ...

Nowy stary zakop

Niektórym osobom ta funkcja się spodoba, szczególnie tym, którzy pamiętają pierwszą wersję Wykopu. Opcja 'zakop' działała podobnie jak obecne 'wykopywanie', lecz dany link tracił jeden głos, zamiast go zyskać.

Teraz ponownie można 'zakopywać' w tradycyjny sposób: zobacz przykład. Podstrona Wykopu którą podlinkowałem została usunięta z 'wykopaliska', ze względu na minusową ilość głosów, a także ze względu na dyskusję ujawniającą słabe punkty Wykopu.

XSS - czyli przejmujemy kontrolę
Nowe funkcje są ciekawe, ale na co tak naprawdę pozwalają?
Odpowiedź jest prosta: na przejęcie dowolnego konta użytkownika - możemy korzystać z JavaScriptu, więc mamy dostęp do cookies użytkownika. Stąd już droga jest prosta.

Pytanie: po co komu czyjeś konta na Wykopie?
Przejmując czyjeś konto nie zyskamy nic, poza 'nickiem z przeszłością'. Jednak dla spamerów może to być idealna okazja do 'promowania' swoich stron/produktów.

Opisywane luki zostaną załatane, zanim ktoś wykorzysta je w niewłaściwych celach. W tym poście nie zdradziłem sposobu, za pomocą którego korzystałem z 'nowych funkcji' - to jest chyba oczywiste. Więc nikt o swoje konta nie musi się obawiać.

Nie tylko komentarze - My name is 'Luka'
Nie tylko komentarze mogę być zagrożeniem dla użytkowników Wykopu. Istnieją inne miejsca, w których można wstawić dowolny kod. Jednym z nich jest podstrona zawierająca formularz rejestracji: zobacz przykład. Oczywiście zgodnie z moim (nowym) zwyczajem, wstawiłem filmik z YouTube ;)

... bo RoR jest bardziej sexi
Znając życie znów ktoś powie, że przepisanie Wykopu na PHP nie było dobrą decyzją. Ja powiem tyle: w poprzedniej wersji Wykopu błędy też istniały, może nie były aż tak 'atrakcyjne' jak obecne, ale przejęcie dowolnego konta było o wiele łatwiejsze...

"Mogłeś to zgłosić administratorowi, zamiast pisać o tym!"
Hmm, właśnie zgłaszam, tylko w inny sposób ...
Jak już wspomniałem, nie ujawniłem niczego, co mogłoby być wykorzystane przeciwko użytkownikom Wykop.pl. Więc możemy spać spokojnie :)

Acha - zapomniałbym o jednej ważnej rzeczy: to nie jest fake ;)

Komentarze 491:

  • » Anonimowy_komentator: 29.07.2007 o 16:55

    Pooglądaj Joggera i tam coś znajdź, dobrze? :)

  • » Chlitto: 29.07.2007 o 17:35

    N1:)

    [UWAGA: Treść komentarza jest niewłaściwa !
    Komentarz powinien zawierać przynajmniej 10 znaków.]

  • » Fanatyk: 29.07.2007 o 17:39

    O mamo! Taaaacy "fachowcy" i co? Szkoda gadać.

  • » Tomasz Topa: 29.07.2007 o 17:41

    Zły, wredny, niedobry... :)

    Świetny artykuł :)

  • » Gadżety: 29.07.2007 o 18:01

    Dziurę w komentarzach zgłosiłem im drugiego dnia po uruchomieniu wersji... Dupa nic nie zrobili... Podesłałem też paru redakcją informacje może któraś chwyci temat...

  • » Wzs: 29.07.2007 o 18:14

    Nieźle ;)
    A myślałem, że dobry bajer to samo edytwanie komentazy innych użytkowników: http://www.wykop.pl/link/22901 /crayon-game

    Co tu wiele mówić- dziura na dziurze. Ale niektore naprawdę przydatne (ukryj TOP ;))
    Idę szukać dalszych błędów.

  • » Chlitto: 29.07.2007 o 18:19

    Powiedzonko "nie naprawiaj tego co nie jest zepsute" idealnie pasuje ^^

  • » Adriano: 29.07.2007 o 18:26

    Jeszcze zapomniałem wspomnieć o 'auto-wykopywaczu' - ktoś wchodzi na daną stronę, a skrypt w tle wykopuje ...

    Pamiętam, że w poprzedniej wersji Wykopu też istniała taka luka, ale ją szybko załatano.

  • » Marek: 29.07.2007 o 18:36

    Nie odwiedzam Wykopu, ale to zasługuje tylko na jedno: LOL :D

  • » Wzs: 29.07.2007 o 18:37

    Chyba to admini też wyhaczyli bo za nic nie mogę dodać tego wpisu na wykop właśnie - chyba że Ty coś i przy tym majstrowałeś ;)

  • » Adriano: 29.07.2007 o 18:41

    Ja nic nie robiłem ...

    Stwórz alias ;)

  • » Adriano: 29.07.2007 o 18:46

    O ktoś mi jeden przykład zepsuł edytując komentarz ;)

  • » Ludwik: 29.07.2007 o 19:01

    Adriano, podziwiam ;)

  • » Adriano: 29.07.2007 o 19:04

    Najlepsze jest to, że admini już ocenzurowali ten wpis zanim został dodany ;)
    (patrz komentarze wyżej)

  • » Wzs: 29.07.2007 o 19:07

    Http://www.wykop.pl/link/22985 /wykop-dziurawy-jak-polskie-dr ogi <- możesz tam coś poczarować jeszcze :)

  • » Adriano: 29.07.2007 o 19:09

    Zaraz coś wymyślę ;)

  • » Off: 29.07.2007 o 19:18

    Adriano mógłbyś udostępnić jakaś drogę kontaktu :> Te encje robiłeś ręcznie, czy jakimś generatorem?

  • » Adriano: 29.07.2007 o 19:22

    @Off: za pomocą skryptu (adres koło mojego nicka [www])

  • » Tomasz Topa: 29.07.2007 o 19:33

    Hehehehe, robaczek jest piękny :)

    Kolejny Wykop będzie zbudowany na bazie statycznych plików HTML - fachowców od HTML jest dużo więcej :) Będą siedzieć i za pół ceny przeklepywać we frontpejdżu nowe komentarze i dodawać strony :)

  • » Plat: 29.07.2007 o 19:34

    Świetny artykuł! Z wykopu nie korzystam prawie wcale więc mi tam nie przeszkadzają bugi, ale dobrze by było jak by je "załatali"

  • » Riddle: 29.07.2007 o 20:02

    Proszę tylko pamiętać, że to *nie* jQuery powoduje luki JavaScript, tylko źle napisany kod serwisu pozwla wykonać JS -> skorzystać z jQuery.

  • » Quisto: 29.07.2007 o 20:26

    Widzę że od dziś Adriano to wróg nr1 wykopu ;)

  • » Ludwik: 29.07.2007 o 20:30

    Tak sobie myślę, czy np. nie dałoby rady za pomocą JS podpiąć pod wykop jakiegoś skryptu statystyk? fajnie by wiedzieć ile tak na serio wykop ma wejść

  • » Quisto: 29.07.2007 o 20:36

    A i jeszcze jedno - niestety bez znajomości js nic nie zrobię, tak więc chyba dostałem motywację to nauki ;);)

  • » Radzio: 29.07.2007 o 20:40

    Heh, nie wiem kto to pisał, ale kod wykopu to za przeproszeniem pośmiewisko ;-), no comment...

  • » Troglo: 29.07.2007 o 20:53

    Ja tam sie na tym nie znam ale link do strony z filmikiem YouTube dziwnie śmierdzi, normalna strona rejestracji wygląda normalnie
    ?

  • » Jacek Z. Strzembkowski: 29.07.2007 o 20:55

    Tak przy niedzieli ?
    Nie masz serca - gonić programistów w niedzielę do roboty. :)))

    Wbrew pozorom, osób które potrafią się bawić tego typu lukami jest już w Polsce sporo. To zaczyna być poważny problem a nie coś, co można zrobić "jutro".

    Pozdrawiam

  • » Adios: 29.07.2007 o 21:06

    Ruby rządzi, Ruby radzi, Ruby nigdy cię nie zdradzi :) osobiście czekam na jakieś polskie diggowisko na railsach...

  • » Aga: 29.07.2007 o 21:30

    Jaki tam wróg nr 1. takich sie do pracy przyjmuje.

  • » Oskar Krawczyk: 29.07.2007 o 22:21

    Pozwolę sobie tutaj dodać komentarz jako że na wykopie już nie da się:

    Nieźle, teraz kliknięcie w *to* textarea prowadzi na google - ciekawe.

    Tak całkiem serio: tak się kończą _zabawy_ w stworzenie aplikacji internetowej od podstaw gdy dajemy kodować amatorom (vide dzieciakom z liceum) "bo tak będzie taniej" - spotkałem się z wieloma takimi sytuacjami i zawsze kończyło się to na tym, że wkład finansowy był zdecydowanie większy pod koniec łatania dziur niźli zrobić by wszystko fachowo na samym początku.

  • » Oskar: 29.07.2007 o 22:30

    Dobry dzień na dobry artykuł :)

  • » Karol Olszak: 29.07.2007 o 22:43

    Adriano pracuje dla wp.pl więc nie ma się co dziwić, idiotów tam nie zatrudniają :)

  • » Ketsu: 29.07.2007 o 22:51

    Bardzo dobry artykuł, choć nie dla samego wykopu. Pozostawienie tylu błędów i wypuszczenie serwisu w tej wersji "bo czas gonił" (tak to wygląda) naraziło adminów na śmieszność i co tu kryć - serwisu aukcyjnego ich autorstwa bałbym się trochę używać.

  • » Ss: 29.07.2007 o 23:30

    Wiem, ze to moze z zalozenia nie ma byc techniczna notka, ale ciekawiej by bylo jakbys opisal pare szczegolow implementacyjnych ;)


    btw: Czemu "Nick powinien zawierać od 2 do 30 znaków"? To, ze pracujesz w wp.pl nie pozwala ci decydowac, czy moj nick jest poprawny czy nie :P

  • » Mendax: 29.07.2007 o 23:40

    Szczerze mowiac, to az sie teraz na wykop boje wejsc. przy co drugim dodanym linku pewnie bedzie jakis robal...
    poza tym, to Kolega chyba jednak mogl do jutra poczekac - bardzo niegrzecznie w niedziele takimi rzeczami straszyc programistow wykopu;)

  • » Mosh: 30.07.2007 o 00:25

    Dobry artykulik.. proponuje go wykopać :D

  • » Marcin: 30.07.2007 o 00:45

    JQuery i XSS nieciekawie wygląda, rzeczywiście można zrobić prawie wszystko. Teraz to nawet się nie zdziwię sqlinjection. A miało być tak ładnie...

  • » Radarek: 30.07.2007 o 01:44

    "Jeszcze zapomniałem wspomnieć o 'auto-wykopywaczu' - ktoś wchodzi na daną stronę, a skrypt w tle wykopuje ...

    Pamiętam, że w poprzedniej wersji Wykopu też istniała taka luka, ale ją szybko załatano."

    Potwierdzam, sam byłem autorem tego samowykopywacza ;). O tym, że nowy wykop łapie xss wiedziałem zaraz po uruchomieniu (to było pierwsze co zrobiłem;) ), jednak po prostu darowałem sobie tą zabawę. Z tymi komentarzami to jest jakieś przegięcie. Jak zobaczyłem o co chodzi to omal z krzesła nie spadłem. Hidden value, no nie mogę :). Ewidentnie to jacyś licealiści pisali :). Co do samowykopującego się linku to akurat trzeba sobie jasno powiedzieć, że większość (niezależnie czy małych, dużych, znanych) aplikacji jest podatna na takie rzeczy - może coś skrobnę na blogu o tym.

    Ponieważ widzę, że w artykule linkujesz do mojego artykułu, chciałbym w tym miejscu jedną rzecz podkreślić. Te błędy to nie jest kwestia zmiany PHP <-> Ror. Chodzi o bardzo prostą rzecz (a właściwie w tym przypadku dwie). Wykop chodził zdaje się już ponad rok, w tym czasie pewne dziury zostały załatane i powiedzmy (jeśli chodzi o dziury) było ok. Przepisywanie natomiast takiej aplikacji powoduje prostą rzecz: startuje się od nowa, a więc produkowane są nowe błędy. Ich ilość akurat w tym wypadku jest dosyć spora, z bardzo prostej przyczyny - raczej słabi programiści. Adrianio dobra robota :).

  • » Kamil Nicieja: 30.07.2007 o 11:57

    O, przy edycji wpisu wysyła ponownie trackbacka :-/

  • » Saqq: 30.07.2007 o 13:04

    No bardzo ciekawe :-)

  • » Adriano: 30.07.2007 o 13:07

    @Karol Olszak, ja NIE pracuje dla wp.pl ;)

  • » Keroth: 30.07.2007 o 22:25

    Nie jestem specem od zagadnień sieciowych, więc tym bardziej takie notki czyta się z przyjemnością. Słyszałem o dziurach w nowym wykopie, ale nie sądziłem, że jest ich aż tyle.

  • » michal: 31.07.2007 o 15:26

    Sorry, ale wykop nawet kolo web3.0 nie lezal. Prawdziwe web3.0 to [spam]

  • » Adriano: 31.07.2007 o 15:34

    @michal, taa, widziałem - poza tym ciekawy sposób na reklamę ;)
    (już kilkanaście razy czytałem coś podobnego)

  • » Hustla: 04.08.2007 o 00:49

    Wykop ma bledy ale jest bardzo dobrze wykonanym serwisem pewnie za nieduze pieniadze fachowcy by to zrobili za 10 razy tyle i pewnie nie lepiej raczej gorzej jeszcze marudzac... ja tam wole zatrudniac licealistow sa tak samo dobrzy jak nie lepsi od profesjonalistow biora 10 razy mniej i bledy poprawia jak tylko sie pojawia za to nie doplaca wiec nie wiem czemu ktos napisal ze wychodze na tym gorzej.

  • » Adam: 26.11.2007 o 23:25

    Szkoda, że się nie za bardoz znam na hackingu, bo chętnie bym potestował;)

  • » cs: 05.12.2007 o 14:20

    M a s a k r a
    ale cóż.. każdemu może się zdarzyć :P

  • » Jaro: 24.02.2008 o 00:11

    Nieźle:). Ja tam jakoś nie lubię tego wykopu, no ale jakby się taka okazja nadarzyła...

  • » Prezes: 25.02.2008 o 19:07

    Ja też nie. Napiszesz coś ciekawego to zaraz, że spam, autoreklama itp. ale jakby tak o coś o biuście Dody, albo że Ricky Martin wpadł do studzienki kanalizacyjnej to zaraz do góry. Poziom intelektualny naszego społeczeństwa pozostawię bez komentarza.

  • » Patryk: 07.03.2008 o 08:38

    Ja się z Prezesem nie zgodzę. Dzisiaj patrzyłem wykopane strony i np. się dowiedziałem, że w mbanku mozna płacić płaskimi visa electron, że naukowcy zrobili kolejny krok w walce z HIV i ciekawy wykres pokazujący drogę hamowania w zależności od prędkości. Całkiem ciekawe zestawienie.

  • » Naomi: 12.03.2008 o 20:06

    Określenie czy dane zagadnienie jest ciekawe to bardzo subiektywna sprawa. Tutaj głosuje społeczność, ale to co interesuje masę wcale nie musi być ciekawe dla jednostki.

  • » Janka: 20.06.2008 o 21:15

    He, niezłe, ogólnie to bardzo dużo serwisów można hackować, wordpressa co chwilę łatają.

  • » JQuery: 22.07.2009 o 14:00

    Z wordpressem to inna historia... Oprogramowanie powinno byc dobrze zaprojektowane, a rozwiniety soft w tym celu trzeba przepisac, a tego nie ma komu zrobic

  • » Adam: 08.01.2010 o 20:24

    Wordpress w przeciwieństwie do wielu innych skryptów, jest bardzo szybko łatany i często aktualizowany. To na pewno plus tego silnika, ale znowu trzeba co chwilę robić aktualizacje ;)

  • » kkk: 18.02.2011 o 15:38

    O tak
    "><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>

Dodaj komentarz:

Dostępne tagi: [link]http://adres-www[/link] [quote]cytat[/quote] [code]kod[/code] [pre]tekst preformowany[/pre] [b]bold[/b]