Межсайтовый скриптинг (XSS) — это атака с использованием кода, позволяющая злоумышленнику выполнить вредоносный JavaScript в браузере другого пользователя.
Атакующий не нацеливается непосредственно на свою жертву. Вместо этого он использует уязвимость на веб-сайте, который посещает жертва, чтобы заставить веб-сайт доставлять ему вредоносный JavaScript. Для браузера жертвы вредоносный JavaScript представляется законной частью веб-сайта, и, таким образом, веб-сайт выступает непреднамеренным сообщником злоумышленника. Эти атаки могут осуществляться с использованием HTML, JavaScript, VBScript, ActiveX, Flash, но наиболее часто используемым XSS является вредоносный JavaScript.
Эти атаки также могут собирать данные о взломе аккаунта, изменении настроек пользователя, краже / отравлении файлов cookie или ложной рекламе и создавать DoS-атаки.
пример
Давайте рассмотрим пример, чтобы понять, как это работает. У нас есть уязвимая веб-страница, которую мы получили на метастабильной машине. Теперь мы проверим поле, которое выделено красной стрелкой для XSS.
Прежде всего, мы делаем простой скрипт оповещения
<script> alert(‘I am Vulnerable’) </script>
Это даст следующий результат —
Типы XSS-атак
Атаки XSS часто делятся на три типа —
-
Постоянный XSS, где вредоносная строка происходит из базы данных сайта.
-
Отраженный XSS, где вредоносная строка происходит от запроса жертвы.
-
XSS на основе DOM, где уязвимость заключается в коде на стороне клиента, а не в коде на стороне сервера.
Постоянный XSS, где вредоносная строка происходит из базы данных сайта.
Отраженный XSS, где вредоносная строка происходит от запроса жертвы.
XSS на основе DOM, где уязвимость заключается в коде на стороне клиента, а не в коде на стороне сервера.
Как правило, межсайтовый скриптинг обнаруживается сканерами уязвимостей, поэтому вам не нужно выполнять всю ручную работу, включив в него JavaScript, например:
<script> alert('XSS') </script>
Burp Suite и acunetix считаются лучшими сканерами уязвимостей.
Быстрая подсказка
Чтобы предотвратить атаки XSS, помните следующее:
Проверьте и проверьте все поля формы, такие как скрытые формы, заголовки, файлы cookie, строки запросов.
Реализуйте строгую политику безопасности. Установите ограничение символов в полях ввода.