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

#2 Исследование Reflected XSS (уровень Low).

Давайте начнем исследовать XSS уязвимости. Суть метода сводится к тому, чтобы просмотреть целевой веб-сайт, и попытаться провести инъекцию в любое текстовое поле или в url (позже Вы поймете, о чем я говорю). Сразу вспоминается аналогия с SQL-инъекциями.

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

Для наглядной демонстрации уязвимости, мне понадобится веб-приложение «DVWA». Выставлю настройки безопасности на «low»:

Выставлю настройки безопасности на «low»

Перейду на вкладку «XSS reflected»:

Перейду на вкладку «XSS reflected»

Видим страничку с полем ввода имени. Можем попробовать ввести какое-либо имя:

Видим страничку с полем ввода имени. Можем попробовать ввести какое-либо имя

После ввода, как видим, происходит обработка нашего запроса и вывод на странице.

Суть этой страницы состоит в том, что мы можем проводить инъекции через текстовые поля. Также, посмотрев на URL страницы, Вы можете заметить, что данные передаются методом GET, т. е. в открытом виде:

в url данные передаются методом get

И это прекрасно, так как мы можем проводить инъекции через URL.

Теперь попробуем провести инъекцию в текстовом поле, написав скрипт на языке программирования JavaScript. Он очень прост, и является наглядным примером. Это простейший вариант вставки скрипта, так как существуют другие, более изощренные обходы фильтрации. Конструкция скрипта будет состоять из открывающего и закрывающего тега: <script></script>, функции alert(), которая вызывает всплывающее окно. Внутри функции можно прописать любое слово, обрамив его двойными кавычками («»). В данном примере я пропишу слово «Reflected XSS». Конечная запись будет иметь вид: «<script>alert(«Reflected XSS»)</script>». Вставим написанный код в поле на странице и жмем кнопку «Submit»:

<script>alert(«Reflected XSS»)</script>

Как видим, на странице присутствует уязвимость XSS, и об этом нам говорит всплывающее окно.

Такие же манипуляции мы можем проводить с записью в URL. Не будем далеко ходить, а прямо из нашего примера скопируем строку URL.

Она будет иметь вид: «http://10.0.2.7/dvwa/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28%27Reflected+XSS%27%29%3C%2Fscript%3E#». Можно заметить, что некоторые символы были преобразованы, но это не важно, так как эту ссылку мы можем отправить нашей цели, и она сработает.

Иными словами, мы можем делать инъекцию в URL. Продемонстрирую Вам работу этой инъекции. Это просто реализуется, и я ввожу код непосредственно в строку URL:

я ввожу код непосредственно в строку URL

Код выглядит как «<script>alert(«Reflected XSS»)</script>». Как я уже говорил, мы можем скопировать этот URL, и отправить нашей цели. Перейдя по ссылке, код будет выполнен, что означает успешную реализацию атаки.

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

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