ХSStrike - это довольно продвинутый сканер для поиска XSS уязвимостей c открытым исходным кодом. Он написан на Python3 и довольно прост в начальной настройке и использовании.
Установка
Для установки необходимо скачать архив по
ссылке и распаковать в удобную вам папку. После этого необходимо открыть консоль и перейти в распакованную папку. Затем нужно выполнить команды в консоли:
code:
pip3 install pygame
Установим необходимые для корректной работы библиотеки:
code:
pip3 install -r requirements.txt
Проверка на XSS уязвимости при помощи XSStrike
Теперь мы готовы к тестированию. Пример простого запуска. В качестве url укажите адрес страницы, которую хотите протестировать:
code:
python xsstrike.py -u "http://161.35.92.161/index.php?page=2" --blind
Очень быстро скрипт обнаруживает, что параметр page является уязвимым (строчка
Reflections found) и через него можно передать js код, который будет исполнен на странице. Пример такого кода приводится в строчке
Payload. Такой тип XSS уязвимостей называется
reflected XSS.
Кроме того, можно проверять и формы. Отправим на проверку форму, которая отправляет сообщение в наш сервис. Чтобы передать список POST параметров используем опцию --data.
code:
python xsstrike.py -u "http://161.35.92.161/index.php" --data "name=&message=" --blind
Результат: параметр name уязвим.
Так выглядит ответ, когда скрипт не находит уязвимых параметров:
Кроме того, XSStrike поддерживает возможность передавать http заголовки, в том числе cookies, и проверять страницы, для открытия которых нужна авторизация. Для этого используется опция
--headers:
code:
python xsstrike.py -u "http://161.35.92.161/index.php" --data "name=&message=" --headers "Authorization: Bearer Cookie: zmname\=none" --blind
Также можно запустить обход по всему сайту. Нужно указать стартовую страницу и сканер начнет обход всех найденных страниц. Запись
-l 100 отвечает за количество страниц обхода.
code:
python xsstrike.py -u "http://161.35.92.161" --blind --crawl -l 100
Скрипт покажет страницы, на которых были найдены уязвимые параметры. Найденные страницы можно уже исследовать подробнее.
Также полезная функция - обход url страниц, которые указаны в файле с помощью опции
--seeds. Можно также использовать вместе с опцией
--headers:
code:
python xsstrike.py -u "http://example.com" -l 3 --seeds urls.txt
Таким образом можно достаточно тщательно проверить свое веб-приложение на XSS уязвимости.
vc.ru