Инструкция
1
Суть XSS-уязвимости состоит в возможности выполнения на сервере стороннего скрипта, позволяющего хакеру украсть конфиденциальные данные. Обычно крадутся кукисы: подставив их вместо своих, злоумышленник может зайти на сайт с правами того человека, чьи данные он украл. Если это администратор, то и хакер войдет на сайт с полномочиями администратора.
2
XSS-уязвимости делятся на пассивные и активные. Использование пассивной предполагает, что скрипт удается выполнить на сайте, но не сохранить на нем. Для использования такой уязвимости хакеру надо под тем или иным предлогом заставить вас перейти по присланной им ссылке. Например, вы администратор сайта, получаете личное сообщение и переходите по указанной в нем ссылке. При этом кукисы уходят на сниффер – программу для перехвата нужных хакеру данных.
3
Активные XSS встречаются гораздо реже, но они намного опаснее. В этом случае вредоносный скрипт сохраняется на странице сайта – например, в сообщении форума или гостевой книги. Если вы зарегистрированы на форуме и открываете такую страницу, ваши кукисы автоматически уходят к хакеру. Именно поэтому так важно уметь проверить свой сайт на присутствие данных уязвимостей.
4
Для поиска пассивной XSS обычно используется строка "><sсriрt>alert()</sсriрt> вводимая в поля для ввода текста, чаще всего в поисковое поле сайта. Вся хитрость в первой кавычке: при ошибке в фильтрации символов кавычка воспринимается как закрывающая поисковый запрос, и стоящий после нее скрипт выполняется. Если уязвимость есть, вы увидите на экране всплывшее окошко. Уязвимость этого вида очень распространена.
5
Поиск активной XSS начинается с проверки того, выполнение каких тегов разрешено на сайте. Для хакера наиболее важными являются теги img и url. Например, попробуйте вставить в сообщение ссылку на картинку вида: [img]http://www.site.ru/image.jpg[/img]. Адрес может быть любым, собственно картинка здесь не нужна. Хакеру важно увидеть, вставилась ли его картинка в сообщение. Если да, то в сообщении на месте картинки появится красный крестик (ведь реально картинки нет). Далее он проверит, можно ли вставить пробел после расширения *.jpg: [img]http://www.site.ru/image.jpg [/img].
6
Если снова появился крестик, хакер на полпути к успеху. Теперь он добавляет после расширения *.jpg еще один параметр: [img]http://www.site.ru/image.jpg lowsrc=javascript:alert() [/img]. Сообщение с крестиком снова появилось на странице: теперь у каждого, кто ее откроет, будет появляться всплывающее окошко. Это значит, что уязвимость присутствует и работает. Теперь хакеру остается удалить свои сообщения и вставить новое, со ссылкой на сниффер вместо кода, выводящего предупреждающее окошко.
7
Как защитить сайт от атак через XSS-уязвимости? Старайтесь, чтобы на нем было как можно меньше полей для ввода данных. Причем «полями» могут стать даже радиокнопки, чекбоксы и т.д. Есть специальные хакерские утилиты, выводящие на странице браузера все скрытые поля. Например, IE_XSS_Kit для Internet Explorer. Найдите эту утилиту, установите ее – она добавится в контекстное меню браузера. После этого проверьте все поля своего сайта на возможные уязвимости.