Burp Suite для пентестинга: XSS Validator

Дата: 06.11.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности

В этой статье пойдет речь об одном из самых полезных расширений Burpsuite – XSS Validator. С помощью него пользователь может автоматизировать обнаружение и проверку веб-приложения на уязвимость для атак XSS.

Если читатели не знакомы с Cross-Site Scripting, то лучше ознакомиться с еще одной статьей (которая была опубликована ранее на нашем сайте), прежде чем читать информацию, представленную ниже.

Знакомство с расширениями Burp и BApp Store

Расширения Burp

Читатели, скорее всего, слышали термин «расширение» относительно браузера, будь то Chrome или Firefox, но о чем идет речь в данном случае?

Расширения – это специальные программы, написанные для того, чтобы расширить функциональные возможности приложения. Таким образом, Burpsuite имеет возможность настройки своих функций и расширения возможностей: будь то изменение HTTP-запросов и ответов, настройка пользовательского интерфейса или добавление пользовательских проверок с помощью сканера. Это все относится к расширениям Burp.

BApp Store

Но где найти эти расширения?

В Burpsuite есть особая вкладка, которая была сделана только для управления расширениями программы. Вкладка Extender помогает пользователю управлять всеми расширениями, которые уже были установлены. Там также есть раздел, имеющий название BApp Store, где можно скачать дополнительные расширения.

В BApp Store пользователь может просмотреть список доступных BApps, скачать конкретное расширение и оценить уже установленные дополнения.

Однако некоторые расширения уже были удалены из BApp Store, поэтому для таких случаев Burp дает пользователям возможность вручную установить нужное им расширение.

Что такое XSS Validator?

XSS Validator, специальное расширение для Burp, предназначенное для обнаружения и проверки на уязвимость атак Cross-Site Scripting.

John Poulin, создатель этого расширения, разработал его еще в 2017 году с намерением автоматизировать обнаружение уязвимостей XSS в веб-приложениях.

Это расширение популярно, поскольку работает без перебоев и имеет встроенный список полезных нагрузок, где каждая полезная нагрузка связана со значением триггера «f7sdgfjFpoG».

Будучи валидатором, это расширение также вносит свой вклад в качестве детектора уязвимостей и атак. Однако для того, чтобы провести успешную атаку, XSS Validator отправляет ответы на локальный запущенный сервер XSS-Detector, т.е. Phantom.js или Slimer.js.

Настала пора узнать, как провести установку и атаку с помощью этого расширения.

Установка XSS Validator

Установка расширения из BApp Store

Как уже было сказано ранее, BApp Store – это хранилище расширений, и поэтому XSS Validator можно найти именно там.

Таким образом, это расширение может быть установлено с помощью нескольких простых шагов.

В Burp Suite нужно открыть вкладку «Extender», выбрать там раздел «BApp», для того чтобы увидеть весь список расширений.

Следует прокрутить страницу вниз, пока пользователь не дойдет до конца списка. Там он найдет нужное расширение.

Как только пользователь нажмет на кнопку «install», начнется загрузка, и в течение нескольких минут будет установлено новое расширение “XSS Validator”.

Стоит нажать на него и проверить, какие функции есть у этого расширения.

В правой части приведенного ниже изображения видно, что есть целый список полезных нагрузок. Вместе с ним, в левой части картинки, есть Grep Phrase, с помощью которой можно активировать добавленную туда полезную нагрузку. Также видно, что можно провести настройку сервера PhantomJs, который и будет использоваться в данном практическом примере.

Установка Phantom.js как XSS Detector

Читателям наверняка интересно, что это такое Phantom.js и почему нужно его установить.

Phantom.js – это инструмент командной строки, такой себе браузер. Однако он не содержит никакого графического интерфейса и работает сам по себе в фоновом режиме.

Бывают случаи, когда атаки XSS на основе DOM осуществляются хакерами, и если пользователь попытается ударить по ним, ему понадобится обнаружить все возможные XSS. Для этого и устанавливается Phantom.js. Читатели могут скачать его, перейдя по ссылке.

Теперь, чтобы интегрировать XSS validator с Phantom.js, нужно скачать файл xss.js. Это можно сделать, перейдя по ссылке.

Как только пользователь это сделает, следует переместить Phantom.js exe в каталог XSS detector.

А теперь пользователь откроет каталог и выполнит следующую команду, чтобы запустить сервер:

phantomjs.exe xss.js

Нужно проверить, работает ли сервер с помощью команды:

http://127.0.0.1:8093

Круто! На приведенном ниже изображении пользователь видит, что сервер был успешно настроен.

Фаззинг с помощью XSS Validator

Установка прошла успешно, теперь следует провести быстрый фаззинг в поле поиска на test.vulnhub с помощью XSS Validator.

Пользователь перехватит текущий HTTP-запрос и, таким образом, поделится им непосредственно с Intruder.

Настало время установить позицию полезной нагрузки и выбрать тип атаки. Пользователь перейдет прямо на вкладку «Positions», выберет нужную позицию и нажмет на кнопку «Add». Будет также выбран «ignite» как цель.

Теперь, стоит перейти к самой важной части этой статьи: вместо простого добавления файла полезной нагрузки, нужно сначала установить тип полезной нагрузки как «Extension-generated».

Теперь следует выбрать generator в качестве полезной нагрузки XSS Validator из меню полезных нагрузок.

В этот раз пользователь отключит опцию кодирования полезной нагрузки.

Теперь нужно скопировать Grep Phrase, чтобы это работало относительно каждой последующей полезной нагрузки.

Итак, почти все: нужно вставить скопированный текст в Grep Match на вкладке «Options», чтобы понять, что атака была осуществлена успешно.

Наконец, стоит проверить галочку у пункта: «Search responses for payload strings» и нажать на кнопку атаки.

На приведенном ниже изображении можно увидеть, что почти все полезные нагрузки были запущены успешно.

Чтобы убедиться в этом, стоит проверить результат в браузере. Пользователь щелкнет правой кнопкой мыши на любом успешном запросе, выберет опцию «Show response in the browser» и скопирует сгенерированный URL-адрес, чтобы открыть его в браузере.

Отлично! Все работает прекрасно.

Стоп, а как же phantom.js? Неужели он что-то захватил?

Как только начнется атака, phantom.js попытается протестировать каждую инъекцию XSS с помощью HTTP-запросов, совместно используемых с XSS Validator.

Настройка списков полезных нагрузок

Некоторые полезные нагрузки уже предустановлены вместе с XSS validator, но что делать, если пользователь хочет добавить свою полезную нагрузку? Он может это сделать, просто введя или вставив полезную нагрузку непосредственно в меню полезных нагрузок, находящемся в правой части расширения.

Стоит проверить, работает ли эта недавно добавленная полезная нагрузка или нет. Для этого пользователь еще раз проведет фаззинг.

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

Отлично! На приведенном ниже изображении можно также увидеть, что полезная нагрузка выполняется успешно.

Автор переведенной статьи: Chiragh Arora.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться ссылкой

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *