Здравствуйте, уважаемые друзья, в очередном выпуске! Межсайтовый скриптинг (XSS) — это эксплойт, при котором злоумышленник прикрепляет код к легальному веб-сайту, который будет выполняться при загрузке веб-сайта жертвой. Этот вредоносный код можно вставить несколькими способами. Чаще всего он добавляется в конец url-адреса или публикуется непосредственно на странице, на которой отображается пользовательский контент.

В более техническом плане межсайтовые сценарии представляют собой атаку с внедрением кода на стороне клиента. 

Давайте для начала попробуем разобраться с таким понятием как клиентский код. Клиентский код — это код JavaScript, который выполняется на компьютере пользователя. С точки зрения веб-сайтов, клиентский код — это обычно код, который выполняется веб-браузером после загрузки веб-страницы. Он отличен от кода на стороне сервера, который выполняется на веб-сервере узла. Клиентский код очень полезен для интерактивных веб-страниц. Интерактивное содержимое работает быстрее и надежнее, так как компьютер пользователя не должен взаимодействовать с веб-сервером каждый раз, когда происходит взаимодействие. Браузерные игры являются одной из популярных платформ для клиентского кода, так как клиентский код может обеспечить бесперебойную работу игры независимо от проблем с подключением. Прежде всего вам следует сначала ознакомиться вот с этой статьей:

Что такое спам и что такое фишинг?

Кроме того, код, который работает на стороне клиента, очень популярен в современной веб-разработке и используется на большинстве современных веб-сайтов. Поскольку межсайтовый код является основным продуктом современного интернета, межсайтовые сценарии стали одной из наиболее часто используемых уязвимостей кибербезопасности, а атаки межсайтовых сценариев поразили основные сайты, такие как YouTube, Facebook и Twitter.

Пример межсайтового скриптинга

Один полезный пример атак с использованием межсайтовых сценариев часто встречается на веб-сайтах с непроверяемыми форумами комментариями. В этом случае злоумышленник публикует комментарий, состоящий из исполняемого кода, обернутого тегами «<script>< / script>». Эти теги говорят браузеру интерпретировать все, что между тегами, как код JavaScript. После того, как этот комментарий находится на странице, когда любой другой пользователь загружает этот веб-сайт, вредоносный код между тегами скрипта будет выполняться их веб-браузером, и они станут жертвой атаки.

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

Как работает атака Slowloris?

— Жертва загружает веб-страницу, а вредоносный код копирует файлы cookie пользователя.

— Затем код отправляет HTTP-запрос на веб-сервер злоумышленника с украденными файлами cookie в теле запроса.

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

Cookies — это временные учетные данные, сохраненные на компьютере пользователя. Например, когда пользователь регистрируется на сайте, как Facebook, Сайт дает им cookie так, что если они закрыли окно браузера и вернутся в Facebook в тот же день, они автоматически аутентифицируются cookie и не нужно перелогиниваться заново.

Как злоумышленник может использовать межсайтовые сценарии для нанесения вреда?

Атаки межсайтовых сценариев JavaScript популярны, поскольку JavaScript имеет доступ к некоторым конфиденциальным данным, которые могут использоваться для кражи личных данных и других вредоносных целей. Например, JavaScript имеет доступ к файлам cookie, и злоумышленник может использовать XSS-атаку для кражи файлов cookie пользователя и их использования в интернете.

JavaScript также может создавать HTTP-запросы, которые могут использоваться для отправки данных (например, украденных файлов cookie) злоумышленнику. Кроме того, клиентский JavaScript также может помочь злоумышленнику получить доступ к API, содержащим координаты геолокации, данные веб-камеры и другую конфиденциальную информацию.

Каковы различные типы межсайтовых сценариев?

Два наиболее популярных типа атак с использованием межсайтовых сценариев — отраженные межсайтовые сценарии и постоянные межсайтовые сценарии.

Отраженные межсайтовые сценарии

Это наиболее часто встречающаяся атака межсайтового скриптинга. При отраженной атаке вредоносный код добавляется в конец url-адреса веб-сайта. Часто это будет законный, надежный веб-сайт. Когда жертва загружает эту ссылку в своем веб-браузере, браузер выполняет код, введенный в url-адрес. Злоумышленник обычно использует какую-либо форму социальной инженерии, чтобы обмануть жертву, нажав на ссылку.
Например, пользователь может получить письмо законного вида, в котором утверждается, что оно пришло из банка. Электронное письмо попросит их предпринять некоторые действия на веб-сайте банка и предоставить ссылку. Ссылку может в конечном итоге выглядеть так:

http://yandex.com/index.php?user= &script> вот какой-то плохой код! </сценарий>

Хотя первая часть url-адреса выглядит безопасной и содержит домен доверенного веб-сайта, код, введенный в конец url-адреса, может быть вредоносным.

Постоянные межсайтовые сценарии

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

"Привет! Меня зовут Дэйв, я люблю долгие прогулки по пляжу и <script>вредоносный код</скрипт>. Любой пользователь, который попытается получить доступ к профилю Дейва, станет жертвой постоянной атаки межсайтовых сценариев.

Как можно смягчить межсайтовые сценарии?

Наиболее распространенная методология смягчения включает использование маркеров защиты от CSRF. В то время как реализации токенов немного отличаются, основной принцип остается тем же самым. Создавая, а затем сравнивая случайно сгенерированную строку токена, злоумышленник с меньшей вероятностью сможет выполнить атаку.