Межсайтовый скриптинг | Контроль Разума
XSS (англ. Сross Site Sсriрting — «межсайтовый скриптинг») — тип уязвимости компьютерной системы, используется при хакерской атаке. Специфика подобных атак заключается в том, что вместо непосредственной атаки сервера, они используют уязвимый сервер в качестве средства атаки на клиента. XSS-атака обычно проводится путём конструирования специального URL, который атакующий предъявляет своей жертве.
Иногда для термина используют сокращение «CSS», но чтобы не было путаницы с каскадными таблицами стилей, используют сокращение «XSS».
Условно XSS можно разделить на активные и пассивные:
- пассивные XSS подразумевают, что скрипт не хранится на сервере уязвимого сайта, либо он не может автоматически выполниться в браузере жертвы. Для срабатывания пассивной XSS, требуется некое дополнительное действие, которое должен выполнить браузер жертвы (например клик по специально сформированной ссылке). Их также называют первым типом XSS.
- при активных XSS вредоносный скрипт хранится на сервере, и срабатывает в браузере жертвы, при открытии какой-либо страницы зараженного сайта. Их также называют вторым типом XSS;
- Часто в отдельный тип выделяют межсайтовый скриптинг через DOM, являющийся пассивным, но использующим уязвимости в клиентских скриптах. Его так же называют третим или нулевым типом.[1]
Сейчас XSS составяют около 15 % всех обнаруженных уязвимостей[2]. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако, это мнение ошибочно: в некоторых случаях с помощью XSS удаётся получить идентификатор сессии администратора или организовать DDOS атаку.
Основной целью активных XSS атак являются форумы, блоги, гостевые книги и социальные сети. Основные виды уязвимостей в них перечислены ниже.
Отсутствие фильтрации html тегов в сообщениях пользователей Править
Некоторые форумы позволяют пользователю использовать html теги для форматирования текста. Если отсутствует должный уровень фильтрации, злонамеренный пользователь может вставить такие теги, как <script> и <iframe> так, что HTTP-Cookie пользователей и администраторов, открывших некоторую тему форума, будут отправлены хакеру, или незаметно открыть произвольную ссылку в контексте браузера пользователя.
Для защиты от этого вида атак следует удалить все теги, кроме входящих в белый список.
Отсутствие фильтрации атрибутов и их значений разрешённых тегов Править
Данная уязвимость, в отличие от предыдущей, не специфична для html форматирования сообщений пользователя. Наиболее ярким примером её является тег img. Хакер может указать в качестве адреса сервер, имеющий узкий интернет канал, парализуя его работу большим количеством запросов, или устроить с его помощью XSRF атаку. Так же хакер может указать атрибут onmouseover и выполнить произвольный javascript код.
В качестве примера подобной уязвимости можно рассмотреть уязвимость в известном форумном движке phpBB за 2002 год.[3][4] Используя эту уязвимость, хакер может закрыть атрибут src и открыть onmouseover, вызывающий вредоносный код.
Для защиты от уязвимостей данного типа требуется жёсткая фильтрация, названий атрибутов, так и их значений. Так же следует запретить использование протоколов javascript: и data: во всех ссылках.
Подмена кодировки в заголовке страницы Править
Современные браузеры пытаются определить кодировку страницы на ходу и интерпретируют html в соответствии с этой кодировкой. В случае, если тег title расположен до тега meta и заполняется пользовательскими данными, хакер может вставить злокачественный html код в UTF-7 кодировке, обойдя таким образом фильтрацию таких символов, как < и «. [5][6]
Для защиты от данной уязвимости следует явно указывать кодировку страницы до каких-либо пользовательских данных.
Другие примеры Править
Существует также возможность обхода фильтра javascript через пользовательскую flash анимацию. Подробности можно почитать на eyeonsecurity.org.[7]
К другим необычным типам XSS атак относятся самодостаточные XSS. [8]
- ↑ http://www.securitylab.ru/analytics/275087.php
- ↑ По данным secuitylab.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
cs:Cross-site scripting de:Cross-Site Scripting en:Cross-site scripting es:XSS et:XSS fa:حملات تزریق کد fi:Cross site scripting fr:Cross site scripting he:XSS it:Cross-site scripting ja:クロスサイトスクリプティング lt:XSS lv:XSS nl:Cross-site scripting no:Cross Site Scripting pl:Cross-site scripting sk:Cross-site scripting sv:Cross site scripting tr:Cross site scripting vi:Xss zh:跨網站指令碼
Что такое межсайтовый скриптинг, и какое нам до него дело?
Начало: 23 марта 2020
Начало: 23 марта 2020
Начало: 23 марта 2020
Начало: 23 марта 2020
Начало: 25 марта 2020
Начало: 26 марта 2020
Начало: 26 марта 2020
Начало: 26 марта 2020
Начало: 26 марта 2020
Начало: 26 марта 2020
Начало: 26 марта 2020
Начало: 27 марта 2020
Начало: 1 апреля 2020
Начало: 1 апреля 2020
Начало: 3 апреля 2020
Начало: 3 апреля 2020
Начало: 9 апреля 2020
Начало: 10 апреля 2020
Начало: 10 апреля 2020
Начало: 13 апреля 2020
Начало: 13 апреля 2020
Начало: 15 апреля 2020
Начало: 15 апреля 2020
Начало: 15 апреля 2020
Начало: 17 апреля 2020
Начало: 17 апреля 2020
Начало: 20 апреля 2020
Начало: 22 апреля 2020
Начало: 24 апреля 2020
Начало: 24 апреля 2020
Межсайтовый скриптинг Википедия
XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного а (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого а с веб-сервером злоумышленника. Является разновидностью атаки «Внедрение а».
Специфика подобных атак заключается в том, что вредоносный может использовать авторизацию пользователя в веб-системе для получения к ней расширенного доступа или для получения авторизационных данных пользователя. Вредоносный может быть вставлен в страницу как через уязвимость в веб-сервере, так и через уязвимость на компьютере пользователя[1].
Для термина используют сокращение «XSS», чтобы не было путаницы с каскадными таблицами стилей, использующими сокращение «CSS».
XSS находится на третьем месте в рейтинге ключевых рисков Web-приложений, согласно OWASP 2013[2]. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора или номера платёжных документов), а там, где нет защиты от CSRF, атакующий может выполнить любые действия, доступные пользователю. Межсайтовый скриптинг может быть использован для проведения DoS-атаки
Справочная информация[ | ]
Безопасность в Интернете обеспечивается с помощью многих механизмов, в том числе важной концепцией, известной как правило ограничения домена. Это правило разрешает сценариям, находящимся на страницах одного сайта (https://mybank.example.com), доступ к методам и свойствам друг друга без ограничений, но предотвращает доступ к большинству методов и свойств для страниц другого сайта (https://othersite.example.com) (недоступная ссылка)[4].
Межсайтовый скриптинг использует известные уязвимости в web-приложениях, серверах (или в системных плагинах, относящихся к ним). Используя одну из них, злоумышленник встраивает вредоносный контент в содержание уже взломанного сайта. В результате пользователь получает объединенный контент в веб-браузере, который был доставлен из надежного источника, и, таким образом, действует в соответствии с разрешениями, предоставленными для этой системы. Сумев внедрить необходимый скрипт в веб-страницу, злоумышленник может получить повышенные привилегии в отношении работы с веб-страницами, cookies и другой информацией, хранящейся в браузере для данного пользователя.
Выражение «межсайтинговый скриптинг» первоначально означало взаимодействие уязвимого веб-приложения с сайтом злоумышленника таким образом, чтобы в контексте атакуемого домена был выполнен JavaScript-, подготовленный злоумышленником (отражённая или хранимая XSS уязвимость). Постепенно опред
Скриптова мова — Вікіпедія
Матеріал з Вікіпедії — вільної енциклопедії.
Скриптова мова (англ. scripting language) — мова програмування, розроблена для запису «сценаріїв», послідовностей операцій, які користувач може виконувати на комп’ютері. Прості скриптові мови раніше часто називали мовами пакетної обробки (
У прикладній програмі, сценарій (скрипт) — це програма, яка автоматизує деяке завдання, яке без сценарію користувач робив би вручну, використовуючи інтерфейс програми. Мови таких скриптів спочатку орієнтувалися на використання як внутрішні керуючі мови у складних системах. Багато хто з них, проте, вийшли за межі сфери свого початкового застосування і використовуються нині в зовсім інших областях. Характерними особливостями даних мов є, по-перше, їх інтерпретованість (компіляція або неможлива, або небажана), по-друге, простий синтаксис, а по-третє, легка розширюваність. Таким чином, вони ідеально підходять для використання в часто змінюваних програмах, дуже невеликих програмах або у випадках, коли для виконання операторів мови витрачається час, незрівнянний із часом їх розбору.
Будування розширень програм[ред. | ред. код]
Для написання призначених розширень користувача можуть використовуватися як плагіни, так і скрипти. Скриптова мова використовується переважно в таких випадках:
- Якщо потрібно забезпечити програмовість без ризику дестабілізувати систему. Оскільки, на відміну від плагінів, скрипти інтерпретуються, а не компілюються, неправильно написаний скрипт виведе діагностичне повідомлення, а не приведе систему до краху.
- Якщо важливий виразний код. По-перше, чим складніша система, тим більше коду доводиться писати «тому, що це потрібно». По-друге, в скриптовій мові може бути зовсім інша концепція програмування, ніж в основній програмі — наприклад, гра може бути монолітним однопотоковим застосунком, тоді як скрипти, що керують персонажами, виконуються паралельно. По-третє, скриптова мова має власний проблемно-орієнтований набір команд, і один рядок скрипта може робити те ж, що кілька десятків рядків на традиційній мові. Як наслідок, на скриптовій мові може писати програміст дуже низької кваліфікації — наприклад, геймдизайнер своїми руками, не покладаючись на програмістів, може коректувати правила гри.
- Якщо потрібна крос-платформовість. Хорошим прикладом є JavaScript — його виконують браузери під найрізноманітнішими ОС.
З іншого боку, оскільки скрипти інтерпретуються з початкового коду динамічно при кожному виконанні, вони виконуються зазвичай значно повільніше за готові програми, що відтранслюють в машинний код на етапі компіляції. Тому скриптові мови не застосовуються для написання програм, що потребують оптимальності і швидкості виконання. Але через простоту вони часто застосовуються для написання невеликих, одноразових («проблемних») програм.
Також в плані швидкодії скриптові мови можна розділити на мови динамічного розбору (sh, command.com) і передкомпільовані (Perl). Мови динамічного розбору прочитують інструкції з файлу програми мінімально потрібними блоками, і виконують ці блоки, не читаючи подальший код. Передкомпільовані мови спочатку прочитують всю програму, компілюють її всю або в машинний код, або байт-код, або в якийсь внутрішній формат, і лише потім виконують отриманий код.