Атака на Infinity GB v.2.2 |
Сразу скажу – атаки достаточно примитивные, но если хочется кому-то (например админу некого сайта) подпортить жизнь – в самый раз:). Все атаки будут законными – никаких обманов, взломов и т. п. Так же мы не будем использовать формы отправки данных с другого сайта дабы обойти ограничение на вводимую длину символов. Просто в поля, которые нам предоставляются для заполнения будем вводить всякую фигню, которую просто не предусмотрели. Итак, как сказал Юрий Гагарин, поехали! Сейчас буду приводить то, что можно сделать с формами при условии что скрипт админ не переписывал. Сразу поправка – весь код будет обрамляться звездочками - *код* Имя пользователя. Тут можно от души посмеяться на админом и всеми остальными. Дело в том, что по абсолютно непонятным мне причинам авторы нарушили свободу слова пользователей и тут же за это поплатились. Как Вы могли видеть в коде файлов, которые хранят сообщения авторы используют разделители ###, [:msg_start:], [:elmail:], [:snd_date:] и [:ip_dev:]. И нет бы просто поменять угловые скобки на коды символов и все хорошо. Они решили действовать жестко – обрезать и все. Ну и на здоровье! Введем вместо имени пользователя ### или другой разделитель и будем наслаждаться тем, что имя пользователя не будет выводиться. Здорово, правда? Смотришь записи и сразу вроде и не понимаешь в чем тут дело. Можно использовать специальные символы, которые есть в таблице символов для конверсии имени пользователя в коды символов – сделай гадость быстро! Можно еще много чего написать, но это уже будет сводиться ко всяким вариациям вышеперечисленного поэтому тут нет ничего интересного. Будем считать, что эту тему мы закрыли. E-mail. Вводим что-то типа « Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript title=XSS» - теперь когда наведем курсор на имя пользователя на всплывающей справке вместо «Нажмите на имя пользователя для отправки e-mail» мы увидим «XSS» так как код ссылки не *<a href=mailto: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript title=« Нажмите на имя пользователя для отправки e-mail»>*, а *<a href=mailto: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript title=XSS title=« Нажмите на имя пользователя для отправки e-mail»>*. Казалось бы мелочь, зато как приятно:). Еще можно перед адресом написать «// « и при наведении указателя мышки на имя пользователя увидим «mailto://». Конечно теперь они адрес почты еще и снизу пишут но все-таки. А порядочные люди могут таким образом защищаться от спам-роботов, которые ищут адреса электронной почты. С адресом почты это пожалуй все: во-первых по умолчанию можно вводить только 25 символов, а во-вторых угловые скобки благополучно фильтруются отсюда вывод напрашивается сам – тут нам делать больше нечего. Текст сообщения. Да здравствуют десять тысяч символов и никаких ограничений! Тут можно вводить все, главное чтобы в пределах отведенного нам для этого места. Все что нельзя вводить будет просто отфильтровано. А нам больше ничего не надо. Снова вернемся к свободе слова, а если быть более точным то не к самой свободе слова, а к тому что нас её лишают. Оно нам надо, очень надо! Дело в том, что PHP не имеет интеллекта – ему это не надо. Он просто делает то, что написано в инструкциях. Например написано удалить в тексте запрещенные последовательности он их удалит, но не проверит чем это закончится. Когда нам говорят что в тексте не должно быть каких-то символов (например ###) мы ведь несколько раз проверим, а скрипт – один. И это здорово! Если мы введем ### скрипт это обрежет, если [:msg_start:] скрипт и это обрежет. А если #[:msg_start:]#[:msg_start:]#? Не знаете что останется? А я знаю! Останется ### и скрипт это не отфильтрует так как он это уже фильтровал и теперь полагает что выполнил все, что от него требовалось! Благодаря этому тело записи, которая будет оставлена в файле, который для этого предназначен, будет нарушен и никто об этом не узнает, а вот когда пользователь посмотрит чужие записи все и всплывет! Введем это побольше и получим загаженную гостевую книгу, с чисткой которой админ будет очень долго мучиться и, что самое главное, в ручном режиме так как из-за такой последовательности символов из админки её не почистишь. Еще хочется? Да запросто! Там есть панель специальных кодов. Сами напросились – введем «[*]», да побольше. Тоже фигня вылезет, а в некоторых случаях вообще ничего не вылезет. Аналогично пункту про имя пользователя скажу что тут делать больше нечего. Если еще что-то хочется сделать то пробуйте сами. В заключении я приведу данные, которые надо ввести во все формы дабы иметь возможность от души посмеяться над админом гостевухи: Имя пользователя: ### Почта: // Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript Сообщение: [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] Теперь все увидят сообщение в котором ничего нет, да еще и оставил его человек без имени.
|