- XSS
-
XSS (англ. Сross Site Sсriрting — «межсайтовый скриптинг») — тип уязвимости компьютерной системы, используется при хакерской атаке. Специфика подобных атак заключается в том, что вместо непосредственной атаки сервера, они используют уязвимый сервер в качестве средства атаки на клиента. XSS-атака обычно проводится путём конструирования специального
Иногда для термина используют сокращение «CSS», но чтобы не было путаницы с каскадными таблицами стилей, используют сокращение «XSS».
Условно XSS можно разделить на активные и пассивные:
- Пассивные XSS подразумевают, что скрипт не хранится на сервере уязвимого сайта, либо он не может автоматически выполниться в браузере жертвы. Для срабатывания пассивной XSS, требуется некое дополнительное действие, которое должен выполнить браузер жертвы (например клик по специально сформированной ссылке). Их также называют первым типом XSS.
- При активных XSS вредоносный скрипт хранится на сервере, и срабатывает в браузере жертвы, при открытии какой-либо страницы зараженного сайта. Их также называют вторым типом XSS.
- Часто в отдельный тип выделяют межсайтовый скриптинг через DOM, являющийся пассивным, но использующим уязвимости в клиентских скриптах. Его так же называют третьим или нулевым типом.[1]
Сейчас XSS составляют около 15 % всех обнаруженных уязвимостей[2]. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако, это мнение ошибочно: в некоторых случаях с помощью XSS удаётся получить идентификатор сессии администратора или организовать DoS-атакy.
Содержание
Примеры
Основной целью активных XSS атак являются форумы, блоги, гостевые книги и социальные сети. Основные виды уязвимостей в них перечислены ниже.
Отсутствие фильтрации html тегов в сообщениях пользователей
Некоторые форумы позволяют пользователю использовать html теги для форматирования текста. Если отсутствует должный уровень фильтрации, злонамеренный пользователь может вставить такие теги, как <script> и <iframe> так, что HTTP-Cookie пользователей и администраторов, открывших некоторую тему форума, будут отправлены хакеру, или незаметно открыть произвольную ссылку в контексте браузера пользователя.
Для защиты от этого вида атак следует удалить все теги, кроме входящих в белый список.
Отсутствие фильтрации атрибутов и их значений разрешённых тегов
Данная уязвимость, в отличие от предыдущей, не специфична для html форматирования сообщений пользователя. Наиболее ярким примером её является тег img. Хакер может указать в качестве адреса сервер, имеющий узкий интернет канал, парализуя его работу большим количеством запросов, или устроить с его помощью XSRF атаку. Также хакер может указать атрибут onmouseover и выполнить произвольный javascript код.
В качестве примера подобной уязвимости можно рассмотреть уязвимость в известном форумном движке 2002 год.[3][4] Используя эту уязвимость, хакер может закрыть атрибут src и открыть onmouseover, вызывающий вредоносный код.
Для защиты от уязвимостей данного типа требуется жёсткая фильтрация, как названий атрибутов, так и их значений. Также следует запретить использование протоколов javascript: и data: во всех ссылках.
Подмена кодировки в заголовке страницы
Современные браузеры пытаются определить кодировку страницы на ходу и интерпретируют html в соответствии с этой кодировкой. В случае, если тег title расположен до тега meta и заполняется пользовательскими данными, хакер может вставить злонамеренный html код в UTF-7 кодировке, обойдя таким образом фильтрацию таких символов, как < и ". [5][6]
Для защиты от данной уязвимости следует явно указывать кодировку страницы до каких-либо пользовательских данных.
Другие примеры
Существует также возможность обхода фильтра javascript через пользовательскую flash анимацию. Подробности можно почитать на eyeonsecurity.org.[7]
К другим необычным типам XSS атак относятся самодостаточные XSS.[8]
Ссылки
- Microsoft Anti-Cross Site Scripting Library еще один способ защиты от XSS-атак
- Основные принципы XSS атаки в форумных движках.
- XSS (Cross Site Scripting) Cheat Sheet. Esp: for filter evasion
Примечания
- ↑ http://www.securitylab.ru/analytics/275087.php
- ↑ По данным securitylab.ru 15,37 % за второй квартал 2008 и 16,57 % за первый квартал 2008
- ↑ http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2002-0902 (англ.)
- ↑ http://seclists.org/bugtraq/2002/May/0243.html (англ.)
- ↑ http://old.antichat.ru/txt/utf7/
- ↑ http://openmya.hacker.jp/hasegawa/security/utf7cs.html (англ.)
- ↑ http://eyeonsecurity.org/papers/flash-xss.htm (англ.)
- ↑ http://www.securitylab.ru/analytics/274302.php
Wikimedia Foundation. 2010.