Найти в Дзене

Что такое уязвимость XSS (Cross Site Scripting)? Типы XSS.

Давайте поговорим об уязвимости XSS, что расшифровывается как Cross Site Scripting или Межсайтовый Скриптинг.

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

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

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

Есть три основных типа XSS:
1. Persistent/Stored XSS.
2. Reflected XSS.
3. DOM based XSS.

Persistent/Stored XSS сохраняется в базу данных. Внедренный код при таком типе уязвимости, сохраняется в базе данных, или на странице таким образом, что при просмотре пользователем определенной страницы, Ваш код будет выполняться.

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

DOM based XSS основана на коде JavaScript, где код выполняется на стороне клиента, без какой-либо связи с веб-сервером. Если рассматривать механику сервера, то можно выявить закономерность того, что большинство веб-серверов применяют фильтрацию кода на уязвимости, в частности XSS. Хитрость в том, что в случае с DOM based XSS, код не отправляется на сервер, что позволяет избежать фильтрации. Код интерпретируется в браузере, без связи с веб-сервером. Часто, такие уязвимости XSS могут встречаться на веб-сайтах, информация на страницах которых может обновляться, без отправки запроса серверу.

А так на этом все. Всем хорошего дня.