Newsy|Artykuły|Projekty|Dodaj newsa|Dodaj na bugtraq|Rejestracja|Archiwum|Forum
Polskie tłumaczenie bugtraqu


Przetłumaczył:CyberKid
Temat artykułu:Błędy w epuls.pl
Źródło:życie
Podatne wersje:aktualna
Data publikacji:2007-10-05 23:43:54
Czytano:5957 razy


Zapewne wielu z Was zna portal społecznościowy Epuls.pl. Serwis ten szczyci się w tytułach swoich witryn tym, że jest najlepszą (na 100%) stroną polskiej sieci. Ciekaw jestem kto oceniał Epuls.pl, bo na pewno nie była to osoba traktująca webmastering poważnie.

Wypadałoby zacząć od tego, że strony nie posiadają typu dokumentu, nie walidują się i są zrobione strasznie niechlujnie.

Zacznijmy od rejestracji. Jest ona dość wygodna i przyjazna dla użytkownika. Powiedziałbym, że za przyjazna. System CAPTCHA jest bardzo miły dla oka ale dzięki temu jest miły także dla botów. Specjalnie się nad nim nie natrudzono, a jeżeli jz jakiegoś powodu nie możemy odczytać kodu (przecież te literki są tak trudne do rozszyfrowania ;)), to możemy go wygenerować na nowo. Niestety jeżeli zdecydujemy się na nowy kod, to będziemy musieli zdecydować się także na ponowne wypełnienie wszystkich danych z formularza.

Podobnie jest z adresem e-mail. Jego wiarygodność "potwierdza" tylko "obecność" mail serwera. Z moich testów wynika, że do bazy wrzucono adresy najpopularniejszych darmowych dostawców e-mail, a następnie skrypt sprawdza czy serwer wpisanego prze nas adresu istnieje. Widać twórcy Epulsa nie lubią ludzi, którzy posiadają własne domeny. Może to strach przed konkurencją?

Jak już znajdziemy się w systemie to też nie jest zbyt różowo. Do pewnego czasu użytkownicy posiadający konto premium DIVINE byli w stanie spreparować swój profil tak, by odpalać na nim dowolny kod HTML w przeglądarce osoby, który ich stronę odwiedzała. DIVINowcy mają do dyspozycji sondę. Niestety do wczoraj byli oni w stanie umieścić niemal każdy znacznik HTML w jej odpowiedziach. O dziwo tylko tagi <script> były przez skrypt wyrzucane. Nasuwa się pytanie: dlaczego inne tagi były dostępne? Błąd który pozwala na takie zabawy nazywa się persistant XSS i o tym, że taka anomalia istnieje został powiadomiony człowiek z obsługi Epulsa ale widać jemu błędy XSS kojarzył się tylko z tymi non-persistant, które wykorzystuje się przy kreowaniu hiperłączy.

W tym przypadku do pewnego czasu błąd pozwalał na sprowokowanie dowolnej akcji na koncie osoby, która odwiedzała zmieniony profil. Przy użyciu pływającej ramki (którą łatwo można było ukryć przypisując jej id jednego ze styli kaskadowych używanych w serwisie) można było uruchomić w przeglądarce ofiary dowolną stronę www. W swoim POC użyłem dwóch funkcjonalności: nabijanie oceny 10 oraz przesyłanie prywatnej wiadomości zawierającej IP i nazwę przeglądarki osób odwiedzających mój profil. Niestety równie dobrze korzystając z tych funkcjonalności można było przesyłać na swoje konto wewnętrzną walutę Epulsa (pulsary, za które placi się prawdziwymi pieniędzi i które można wymieniać na różne usługi świadczone przez serwis). Sposób rozwiązania tego problemu został przeze mnie przekazany obsłudze. Zaproponowałem aby przed przesłaniem innej osobie pulsaru lub przed wykorzystaniem go kazać użytkownikowi wpisać jego hasło oraz przepisać token z obrazka. Podobne rozwiązanie (bez użycia tokenu) zostało wprowadzone dopiero po około trzech tygodniach, kiedy to weszła w życie wersja Epuls 3.1 (w tej wersji w zasadzie zmieniono tylko skórki). Niestety w nowej wersji, w momencie gdy chcemy zrobić coś z naszymi pulsarami system przenosi nas na stronę, na której widzimy tylko i wyłącznie prośbę o podanie hasła. Nie ma systemu CAPTCHA ani informacji o tym co zamierzamy zrobić z naszą walutą. Zabezpieczenie to można obejść korzystając z wspomnianego XSS. Wystarczy spreparować stronę profilu tak aby użytkownik myślał, że jest wylogowany. Wtedy odruchowo wpisze swoje hasło, po czym spreparowany przez nas skrypt może przesłać na nasze konto walutę ofiary (hasło już znamy, bo spreparowana strona je otrzymała).

Oczywiście kod w pływającej ramce można wykorzystać także w inny sposób. Równie dobrze na wstrzykniętej stronie można umieścić exploita. Skoro możliwe jest nabijanie punktów 10, to nasz profil będzie w najlepszej dziesiątce, a co za tym idzie będzie często odwiedzany. O dziwo 10ki można było nabijać nawet gdy odznaczyliśmy opcję "uwzględnij mnie wśród maskotek". Gdy zrezygnowaliśmy z tej funkcjonalności, nasz profil nie był wyświetlany w TOP 10, nie były widoczne linki głosowania oraz nie było wglądu w średnią ale nic nie stało na przeszkodzie aby wykorzystać wcześniej zapisany link i oddać swój głos.

Dodam jeszcze, że błędy persistant XSS dalej istnieją w serwisie Epuls.pl ale z tego co udało mi się ustalić nie są już na tyle niebezpieczne, ponieważ aby zostały one wykorzystane, użytkownik musi odwiedzić pewną część spreparowanego profilu.

Kolejną niedoskonałością Epulsa jest ustawianie osobowości. Możemy wybrać opcję dlaczego "jesteśmy fajni" albo "w co się ubieramy". Wszystko by było fajnie gdyby nie fakt, że do wyboru mamy po kilka opcji do każej kategorii ale każda z nich ma swój globalny numer, a zatem nie trzeba się specjalnie naprawcować aby do pytania o ulubione danie przypisać odpowiedź na pytanie o to co najbardziej lubimy.

Następna rzecz, która nie udała się twórcom/y Epulsa to obsługa magic_quotas. Oczywiście jest to świetna opcja jeżeli chodzi o zabezpieczenie przed mysql_injection ale trzeba też umieć ją wykorzystać i tak, o ile na prezentacji naszego profilu jest ok, to w prezentacjach klubowych zamiast znaku " będziemy widzieć znak \". Podobnie jest w onlinerach (krótkich wiadomościach wysyłanych przez użytkowników; pokazywanych na przemian w wyznaczonym miejscu serwisu).

Wersja Epulsa 3.1 wprowadziła kilka "ciekawych" rozwiązań. Od tej pory galerie zdjęć użytkowników są dzielone na strony. Niestety i tym razem trudna sztuka dzielenie nie została opanowana przez programistów Epulsa. Zastosowano tu jakiś bardzo dziwny algorytm. Z reguły galeria zdjęć użytkownika dzielona jest na strony, w których zdjęcia rozkładane są po równo w takich samych ilościach. Niestety na niektóre profile posiadają galerię gdzie na pierwszej stronie jst 12 zdjęć, na drugiej 7, na trzeciej 2, a na czwartej i piątej nie ma nic, mimo iż strony te wyświetlane są jako dostępne.

Wymienione powyżej błędy to tylko kilka z wielu, które można znaleźć w serwisie. Bo oprócz tego opis właściciela profilu jest zawsze widoczny pod Internet Explorerem ale tylko czasami pod FireFoxem, na profilu można umieścić grającą muzykę ale tylko korzystając z tagu <bgsound> przez co dźwięk słyszany jest tylko pod Internet Explorerem itd.

Gdy za pierwszym razem zgłosiłem błędy w serwisie, to pewna pani z obsługi, po poinformowaniu przeze mnie o możliwości wykradnięcia pulsarów, wpierw zarzuciła mi że jestem grożącym cwaniaczkiem, a następnie zagroziła, że jak tylko ukradnę komuś pulsary, to wezwie policję. Dziwny sposób reagowania na błędy. Podobne zachowanie spotkało mnie ze strony programisty Epulsa.

Do tego bugtraq zacytuję jeszcze bardzo śmieszny tekst, który widnieje między innymi na stronie z prywatnymi wiadomościami serwisu: Na konto Epulsa, nie można się włamać! Aby wejść na profil, potrzebne jest hasło....

Bardzo ciekawe. Jak widać zaprezentowane przeze mnie błędy pozwalały na dostęp do cudzego konta bez posiadania do niego hasła. Czy zatem taka dezinformacja użytkownika, który płaci za swoje konto nie jest jawnym wprowadzeniem w błąd? Ocenę pozostawiam Wam. Tak samo jak ocenę tego czy Epuls.pl jest na 100% najlepszą stroną polskiej sieci.
Copyrights 2002 - 2009 © CC-Team.org design by fre3ke. Hosted by Net1.pl