🚀 Не просто читай — прокачивайся! Зарегистрируйся в Kraken Academy и учись на практике: стенды, модули и путь к реальным скиллам.

Cross-Site Scripting (XSS) — одна из самых распространённых уязвимостей веб-приложений, и при этом одна из самых опасных для пользователей.
Её суть в том, что злоумышленник может внедрить в страницу произвольный JavaScript-код, который выполнится в браузере жертвы.
Результат — кража сессий, обход авторизации, подмена интерфейса, фишинг и даже полный контроль над аккаунтом.

Многие разработчики недооценивают XSS, считая её «несерьёзной», но опытные атакующие комбинируют её с другими уязвимостями, превращая мелкую брешь в точку взлома всей системы.

Как работает XSS

При XSS-атаке злоумышленник добивается того, чтобы в браузере жертвы выполнился вредоносный JavaScript:

  • Код может подгружаться из внешнего источника или быть встроенным прямо в страницу.

  • Скрипт выполняется с теми же правами, что и оригинальный сайт.

  • Это позволяет красть cookies, токены, отправлять запросы от лица пользователя и менять содержимое страницы.

Основные виды XSS

  1. Stored XSS (хранимая)
    Вредоносный код сохраняется на сервере (например, в базе данных) и вставляется в страницу при её загрузке.
    Пример: вредоносный комментарий на форуме, который выполняется у каждого, кто его откроет.

  2. Reflected XSS (отражённая)
    Код передаётся в запросе (например, через URL) и возвращается сервером в ответ без фильтрации.
    Пример: поддельная ссылка, при переходе по которой выполняется вредоносный скрипт.

  3. DOM-based XSS
    Уязвимость возникает в JavaScript на стороне клиента, когда скрипт небезопасно обрабатывает данные из URL или других источников.
    Пример: фронтенд-код подставляет значение из хеша URL прямо в HTML без проверки.

Как находят XSS

  • Вручную — тестирование форм, полей поиска, URL-параметров, заголовков HTTP.

  • Инструментами — Burp Suite, OWASP ZAP, XSStrike, XSSer.

  • Через анализ DOM — проверка клиентского JavaScript на опасные операции (innerHTML, document.write, eval).

Примеры полезных нагрузок

  • <script>alert(1)</script> — базовая проверка на выполнение кода.

  • <img src=x onerror=alert(1)> — обход некоторых фильтров.

  • "><svg onload=alert(1)> — внедрение в HTML-атрибут.

В реальных атаках на место alert(1) подставляют код кражи cookies, перенаправления на фишинговый сайт или загрузки дополнительных скриптов.

Как защититься от XSS

  • Санитизация и фильтрация пользовательских данных на сервере.

  • Экранирование символов при вставке в HTML, JavaScript, CSS или URL.

  • Использование CSP (Content-Security-Policy) для ограничения выполнения скриптов.

  • Запрет eval и подобных функций в коде.

  • Проверка входных данных и вывод только в безопасном виде.

Почему XSS до сих пор в топе OWASP

  • Простота эксплуатации.

  • Ошибки фильтрации и валидации встречаются даже в крупных проектах.

  • Возможность комбинировать с другими уязвимостями для полного взлома.

Хотите не только распознавать XSS, но и использовать её как инструмент тестирования безопасности?
В модуле «XSS: Межсайтовый скриптинг» вы разберёте Stored, Reflected и DOM XSS, научитесь их находить и использовать, а также отрабатывать защиту с помощью фильтрации, санитизации и CSP. Четыре практических задания превратят теорию в реальный навык.

Изучить модуль →

📘 Понравилась статья?

Больше практики и реальных заданий — в Kraken Academy.
А чтобы точно ничего не пропустить — подпишись на наш Telegram-канал.

Рекомендуемые статьи

Обложка

Двухфакторная аутентификация (2FA): что это, как работает и зачем её включать

Читать полностью →
Обложка

Burp Suite и OWASP ZAP: сравнение лучших инструментов для тестирования безопасности веб-приложений

Читать полностью →
Обложка

FFUF в пентесте веб-приложений: как находить то, что скрыто от пользователя

Читать полностью →