четверг, 12 февраля 2009 г.

Security testing. XSS атака.

В этой статье пойдет речь о том как найти на тестируемом сайте уязвимое место для XSS атаки. Вначале немного об этой атаке.

XSS атака
- это атака на сайт, использующая уязвимость, когда некорректно работают фильтры входящей информации. Информация не проверяется должным образом или вообще не проверяется :) перед тем как вернуть результат пользователю. Это дает возможность атаки на пользователя.


Как проверить, есть ли на сайте подобные уязвимости?

  1. Ищем на сайте места, где данные отправляются на сервер.Например, стандартная форма регистрации .
  2. По очереди вставляем в поля следующий код
  1. Сабмитим форму.
Если поле не фильтруется, то скрипт успешно отправится и выполнится. В результате вы увидите следующее окошко


Все! Уязвимость найдена :).Репортуем баг программистам.

Кстати,
в пост пришлось скрипт вставлять как картинку, иначе он выпонялся :)
Вот тебе и XSS атака.

Что ж тут такого страшного, спросите Вы. Ну подумаешь, вывели сообщение.
Ну, вообще то, делать страшные вещи и реально ломать сайт – это не наша работа. Для этого есть хакеры :) Наша работа найти уязвимость и мы ее нашли.

Но для убедительности, приведу примерную последовательность действий, как используя эту уязвимость на странице, хакер может атаковать пользователя.

Итак.
Первое. Для успешной атаки, пользователь должен быть залогинен (чтобы в его куках сохранилась информация о его авторизации в системе).
Второе.
Хакер, должен подготовить XSS код, который будет указывать на уязвимую страницу.

Третье. Хакер должен заманить на данную страницу пользователя.
Для этого он должен каким-то образом дать жертве ссылки на данную страницу (тоесть подготовленный URL) и заставить пользователя зайти на эту страницу.
Не буду вдаватся в подробности как он это сделает. В инете существует множество способов.


После того как жертва пойдет по ссылке, сработает XSS код и хакер получит куки жертвы (с авторизационной информацией). При этом жертва ничего даже не заметит.


После получения данных с куками пользователя системы, хакер может использовать их для входа в систему от имени этого пользователя.
А представьте, если пользователем окажется админ :)....

1 комментарий:

  1. + перенаправление браузера пользователя на узел, где будет осуществлена эксплуатация уязвимости в его ПО
    + сканирование сетевых портов внутренней сети, через браузер пользователя
    + подмена контента
    + организация DoS на другие ресурсы интернета
    + etc

    ОтветитьУдалить