21.07.2020 @ 15:22 Эксплуатация XSS уязвимостей с использованием XSStrike Pentestit, web security, XSS, XSStrike XSS (Cross Site Scripting) — тип атаки, заключающийся во внедрении в выдаваемую веб-приложением страницу вредоносного кода, который будет выполнен на стороне пользователя при открытии им этой страницы. Являясь одним из наиболее популярных нарушением безопасности веб-приложений, атаки с использованием XSS вектора позволяют внедрять на страницу произвольное содержимое, перехватывать cookie и сессии других пользователей, получать доступ в закрытые раздела сайта и даже привелегии администратора веб-ресурса Существует несколько видов XSS: Хранимые — вредоносный код сохраняется на сервере и загружается с него каждый раз, когда пользователи запрашивают отображение той или иной страницы; Отображаемые — вредоносная строка является частью запроса жертвы к веб-сайту. Сайт принимает и вставляет эту вредоносную строку в отправляемый ответ обратно пользователю; XSS в DOM-модели — представляет собой вариант как хранимой, так и отображаемой XSS-атаки. В этой XSS-атаке вредоносная строка не обрабатывается браузером жертвы, пока настоящий JavaScript веб-сайта не выполнится. XSStrike — это пакет обнаружения XSS-уязвимостей, оснащенный четырьмя рукописными синтаксическими анализаторами, интеллектуальным генератором полезной нагрузки, мощным механизмом фаззинга и быстрым сканером. Он распознаёт ответ с помощью нескольких анализаторов, и затем обрабатывает полезные данные, которые гарантированно будут работать с помощью контекстного анализа, интегрированного в механизм фаззинга. Возможности: Мощный двигатель фаззинга; Технология взлома контекста; Интеллектуальная генерация пэйлоадов; Поддержка метода GET & POST; Поддержка файлов cookie; Обнаружение WAF; Пэйлоады ручной работы для фильтрации и WAF-уклонения; Скрытое обнаружение параметров. Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство! Работа с инструментом Скачать XSStrike можно по ссылке. Установка довольно проста — для начала распаковываем архив в нужную директорию и устанавливаем зависимости: pip3 install -r requirements.txt (обязательно pip3) Запускаем: # python3 XSStrike.py Основные команды при работе с XSStrike: Для GET-запросов: # python3 xsstrike.py -u "http://192.168.61.210/xss_get.php?login=of&password1=asd&submit=Query" Команда позволяет проверить пейлоады на странице с использованием GET-метода, после чего можно увидеть список автоматически сгенерированной полезной нагрузки. GET # python3 xsstrike.py -u "http://192.168.61.210/xss2.php" --data "login=&password=&submit" Параметр --data позволяет работать с POST-запросами. POST Параметр --skip позволяет пропустить вопрос о применении того или иного пейлоада, а параметр --params производит поиск потенциально уязвимых параметров. Опцию можно использовать в том числе для конкретной страницы (ограничить применение в рамках определенного пути), иначе перечисление будет выполнено для всех страниц, на которых была обнаружена XSS. Параметр --skip-dom позволяет пропустить сканирование на уязвимости DOM-объектов. DOM-объекты — это независящие от платформы и языка программные интерфейсы, позволяющие программам и скриптам получить доступ к содержимому HTML / XHTML / XML-документов, а также изменять содержимое, структуру и оформление таких документов. Параметр --fuzzer позволяет запустить фаззинг параметров указанных в URL. Фаззинг Параметр --crawl сканирует все доступные страницы сайта и показывает те, которые подвержены XSS. Для передачи каких-либо заголовков во время запроса можно с использованием ключа --headers. Указав ключ без параметров, сначала откроется текстовый редактор для модификации собственных заголовков запроса: например, User-Agent или cookie (передача cookie в данном параметре — единственная возможность просканировать закрытую авторизацией часть веб-приложения). После сохранения изменения процесс сканирования продолжится с учетом внесенных правок. Кроме этого можно указать нужные заголовки в виде отдельных параметров, например: --headers "User-Agent: Pentestit". Параметр --proxy включает или отключает использования прокси-сервера. Изменить адрес прокси-сервера можно в файле core/config.py. В этом файле можно изменять все основные функции инструмента, от стандартного редактора для заголовков запроса, до всевозможных наборов пейлоадов. Заголовки Полезная нагрузка Полезную нагрузку можно закодировать, используя параметр -e. На текущий момент поддерживается только кодирование пейлоадов в base64, при этом конечное веб-приложение также должно поддерживать эту функцию. Обход WAF Поскольку в возможностях указан обход WAF, мы решили протестировать и эту функцию на Nemesida WAF Free, который в стандартной конфигурации заблокировал все попытки выполнить эксплуатацию XSS-уязвимостей. Заключение Можно сказать, что XSStrike — инструмент довольно мощный и многофункциональный. Радует возможность модифицировать заголовки не только в параметрах, но и с использованием текстового редактора, а также добавлять собственный набор полезной нагрузки. Hekpo 12902 Web security Читать дальше >>