XSS, Уязвимости

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

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

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 могут встречаться на веб-сайтах, информация на страницах которых может обновляться, без отправки запроса серверу.

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