Все материалы предоставлены только с ознакомительной целью
Статьи | Хакинг | XSS Часть II
XSS Часть II
© pridu_ROCK aka Rocky 24.05.2006 статья не оптимизирована
© pridu_ROCK aka Rocky 24.05.2006 статья не оптимизирована
Давайте сегодня поговорим о XSS (CSS). Статью, как правило, начинают тем, что рассказывают, как расшифровываются умные слова, кто это придумал и зачем. Сегодня мы отойдем от этих правил и начнем сразу же к применении XSS. Существует очень много людей которые считают что XSS не опасная бага и что от неё мало пользы, ну что ж попробуем сегодня оспорить это мнение. Начнем-с …… У меня уже давно выработалась такая странная привычка видя любые POST запросы подставлять туда <script>alert(/s/)</script> =)) … и эта "хорошая привычка" часто приводит к тому что находятся XSS на крупных серверах. На самом деле успешная реализация XSS зависит от определенной ситуации, рассмотрим несколько ситуаций: Допустим у нас есть такой запрос index.php?page=1 подставим <script>alert(/s/)</script> Хм…. Почему то я уверен что ничего не получится =)) потому что последнее время народ научился фильтровать всё и вся. Ладно попробуем как-нибудь обойти фильтрацию index.php?page=1'><script>alert(/s/)</script> есть маленький процент что alert выполнится это происходит из за того что мы закрыли параметр и вот туда "в свободное место" впихнули свой злой код =)).для закрытия мона использовать ' - кавычку " - двойную кавычку и ` - обратный апостроф, но хочу заметить что это может работать в IE но может и не работать в Mozila и вообще надо понять что XSS такая штука которая может повести себя как левая пятка захочет.. Также мона побаловаться и проверить фильтрацию используя специальные символы типа \n - перевод строки, табуляция. также можно изменить регистр букв то есть запрос будет такой index.php?page=1'><script>lalert(/s/)</ ScRiPt > Перейдем к следующему случаю: Допустим у нас есть гостевая книга у которой есть возможность использовать BBCode Допустим у нас такая ситуация: [url]Тут текст[/url] попробуем так [url style=background-image:url(javascript:alert(/s/)) ]Тут текст[/url] возможно что скрипт выполнится если этого не произошло то опять же можно поиграться со специальными символами, с регистром, табуляцией, также я заметил что IE пох будет такой запрос <img src = javascript:alert(/s/) > или такой <img/src = javascript:alert(/s/) > ну чтож мона тогда и попробовать так [url/style=background-image:/url(javascript:alert(/s/)) ]Тут текст[/url] также можно попытаться сделать так [url style/**/=background-image:url(javascript:alert(/s/)) ]Тут текст[/url] где /**/ пробел ( ) или так [url src =site.com'style=background-image:url(javascript:alert(/s/)) ] Тут текст[/url] ну тут уже работает фантазия мона закодировать строчку <script>alert(/s/) в URL получим это : %3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%2F%73%2F%29%3C%2F%73%63%72%69%70%74 %3E%20 или например (некоторое время это бага была на mail.ru) сделать вот тактоесть пол слова закодировано, а пол слова нет, и фильтр съедает такое =)). Но это уже разговор о тонкостях. Защита: Ну тут только один совет фильтровать всё!!!! В php для этого есть много встроенных функций. Ну чтож я только немного рассказал о XSS на самом деле там еще много лазеек например бывают ситуации когда невозможно впихнуть сниффер и тогда можно сделать липовую копию странички авторизации и подкинуть её пользователю под видом ошибки сервера ... Короче вывод один дерзайте и экспериментируйте =))) Удачи =)))
© pridu_ROCK aka Rocky 24.05.2006 статья не оптимизирована

тоесть пол слова закодировано, а пол слова
нет, и фильтр съедает такое =)). Но это уже разговор о тонкостях.
Защита:
Ну тут только один совет фильтровать всё!!!! В php для этого есть много
встроенных функций.
Ну чтож я только немного рассказал о XSS на самом деле там еще много лазеек
например бывают ситуации когда невозможно впихнуть сниффер и тогда можно сделать
липовую копию странички авторизации и подкинуть её пользователю под видом ошибки
сервера ...
Короче вывод один дерзайте и экспериментируйте =))) Удачи =)))

