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