Межсайтовый скриптинг (XSS) и межсайтовая подделка запросов (CSRF) являются одними из самых распространенных и известных веб-уязвимостей. Хотя их часто упоминают вместе и они могут казаться похожими, они эксплуатируют разные аспекты веб-приложений и браузеров.
Обзор XSS (межсайтовый скриптинг)
На что направлен XSS
Атаки XSS нацелены на конечного пользователя, внедряя вредоносные скрипты в веб-сайты. Цель злоумышленника – выполнить JavaScript в контексте сессии браузера цели. Эти скрипты могут красть файлы cookie, захватывать сессии, делать дефейс страниц или перенаправлять пользователей на вредоносные сайты.
Как осуществляются XSS-атаки
Полезные нагрузки XSS обычно отправляются через поля ввода, параметры запросов или другие точки входа, которые отображаются или хранятся программой без надлежащей очистки. Самые распространенные типы:
- Отображенный XSS: Полезная нагрузка отправляется пользователем и непосредственно отображается в ответе сервера.
- Сохраненный XSS: Полезная нагрузка сохраняется на сервере и запускается, когда другой пользователь просматривает контент.
- XSS на основе DOM: Манипуляции полезными нагрузками происходят полностью в браузере через JavaScript.
Обзор CSRF (межсайтовая подделка запросов)
На что направлена атака CSRF
CSRF заставляет аутентифицированных пользователей выполнять не желаемые действия на сайте, где они вошли в систему. Например, это может включать изменение настроек аккаунта или инициирование транзакций.
Как осуществляются CSRF-атаки
Когда пользователь аутентифицирован в веб-приложении, его браузер автоматически включает файлы cookie сессии в любой запрос в этот домен. CSRF эксплуатирует это, обманом заставляя пользователя отправить поддельный запрос без его ведома. Например, через форму на вредоносном сайте.
Ключевые отличия между XSS и CSRF
Механизм атаки
- XSS подразумевает внедрение вредоносных скриптов в браузер пользователя. Они используют доверие к определенному веб-сайту, позволяя злоумышленнику выполнять JavaScript в его контексте.
- CSRF предусматривает отправку несанкционированных запросов из браузера в доверенное приложение. Злоумышленнику не нужно внедрять код, он обманом заставляет браузер сделать запрос, который сервер считает легитимным.
Потенциальные последствия
- XSS дает возможность злоумышленникам напрямую взаимодействовать с DOM браузера и данными сессии, что позволяет красть токены, манипулировать содержимым страницы, логировать нажатие клавиш и так далее.
- CSRF заставляет пользователей непреднамеренно выполнять такие действия, как отправка форм, изменение данных или транзакции. Злоумышленник использует имеющиеся учетные данные и сессии, не требуя доступа к ним.
Стратегии защиты
- Защита от XSS подразумевает многоуровневый подход, включающий санитизацию входных данных (проверка и очистка вводимых пользователем данных), кодирование вывода (безопасное отображение контента в HTML или JavaScript) и применение заголовков политики безопасности контента (CSP) для ограничения источников выполнения скриптов.
- Защита от CSRF требует проверки того, что каждый запрос на изменение состояния поступает из авторизованного источника. Методы включают встраивание CSRF-токенов в формы, установку файлов cookie с атрибутом SameSite для ограничения использования между источниками, требование повторной аутентификации пользователей для критических операций. Эти меры снижают риск, что запросы могут быть подделаны.
Реальные примеры и кейсы использования
XSS в полях комментариев
Злоумышленник публикует комментарий, содержащий тег скрипта, в блоге. Когда другой пользователь читает комментарий, скрипт запускается в его браузере, воруя файлы cookie сессии или перенаправляя его на вредоносную страницу.
CSRF в отправке форм
Аутентифицированный пользователь заходит на вредоносный веб-сайт, который тайно отправляет форму для изменения адреса электронной почты на банковском сайте. В браузере содержатся действительные файлы cookie сессии, и изменение обрабатывается без ведома пользователя.
Что опаснее, XSS или CSRF?
Обе уязвимости серьезны, но отличаются по масштабу. XSS в целом считается более опасным, поскольку он предоставляет злоумышленникам прямой доступ к среде выполнения на стороне клиента, что позволяет осуществлять широкий спектр вредоносных действий.
CSRF зависит от имеющихся аутентифицированных сессий и обычно требует определенной формы взаимодействия с пользователем. Однако в сочетании с другими недостатками безопасности (например, слабой аутентификацией) CSRF все еще может иметь серьезные последствия.
Обнаружение XSS и CSRF с помощью DAST
Для обнаружения XSS инструменты DAST внедряют ряд полезных нагрузок и отслеживают, как веб-приложение обрабатывает и выводит входящие данные пользователя, определяя места, где в браузере могут выполняться вредоносные скрипты.
Для поиска CSRF современные решения DAST оценивают наличие и реализацию средств контроля безопасности, таких как CSRF-токены и атрибуты cookie SameSite, чтобы выявить недостатки, которые могут разрешить несанкционированные запросы.
Платформа Invicti на основе DAST автоматически подтверждает существование большинства серьезных уязвимостей, включая XSS и CSRF, позволяя не тратить усилия на повторную проверку, а сразу устранять эти проблемы.







