Поиск по этому блогу

понедельник, 14 февраля 2011 г.

XSS (Cross Site Scripting)

XSS (Cross Site Scripting) - межсайтовый скриптинг, уязвимость, которой уже около 13 лет, но при этом ее возможности ничуть не ослабли. Причина в том, что тут атака будет идти не совсем на сервер. Атака будет идти уже на пользователей.
Аббревиатура Cross Site Scripting выглядит несколько неправильно на первый взгляд, но причина в том, что аббревиатура CSS уже используется (Cascading Style Sheets, каскадные таблицы стилей).


Что же это за уязвимость?

Чем-то уязвимость напоминает уже описанный PHP-include, вместе с тем кардинально от него отличается. Итак, данная уязвимость позволяет злоумышленнику встраивать в страницу свои скрипты. Сама по себе возможность скриптов не такая опасная, однако она позволяет украсть cookies, в том числе и админские.

Уязвимость бывает двух видов. 
  1. Пассивная XSS. Хотя она и позволяет злоумышленнику украсть cookies, провернуть ее крайне трудно, потому их не очень любят. Злоумышленник должен сгенерировать вредоносный запрос, дать ссылку админу, убедить его в том, что нужно щелкнуть (социальная инженерия), и в случае, если админ в момент захода был залогинен, злоумышленник получит куки.
  2. Активная XSS. Тут все просто. Она не требует никаких действий со стороны пользователя, она сработает автоматически при открытии страницы. Пожалуй, тут стоит привести пример.
Представим, что на этом сайте блога есть XSS уязвимость (надеюсь, что нет). Некий Вася Пупкин заходит на сайт, ковыряется в моих сообщениях, и решился все-же написать комментарий. Только вместо "Молодец, хорошо сделал/ Шел бы ты отсюда с таким блогом" он набрал комментарий <script>alert()</script>. Отправляет комментарий, обновляет страницу. Разумеется, что когда начнет обрабатываться его комментарий, на странице появится небольшое окошко. Юный хацкер правит скрипт, чтобы он был незаметным, ну и чтобы позволил ему получить мои куки. Ждет, когда я захожу в сеть, проверяю комментарии. Пока я сижу и радуюсь, он уже с моими куками готовит нецензурную запись на главной странице. 


(Написал, и прям как то не по душе стало. Надо вернуть премодерацию назад)


Как же бороться с этой напастью?

Во-первых, если вы являетесь администратором, хватит щелкать по всем личным сообщениям. Если неймется, то хоть разлогинься. Если лень - на главной странице тебе напишут, как избавиться от лени, не переживай.
Во-вторых, рекомендуется настроить фильтр < > и других вспомогательных символов. При этом зачастую фильтры есть, но они несколько уязвимы. Примеры можно увидеть тут.  
 

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