
Улучшенная версия моего инструмента xssfinder - сканирует на наличие различных типов XSS по списку URL.
Это расширенная версия на основе первоначальной идеи, уже опубликованной как "xssfinder". Данная приватная версия позволяет атакующему выполнять не только GET, но и POST запросы. Кроме того, возможно проксировать каждый запрос через Burp или другой туннель.
Переименуйте example.app-settings.conf в app-settings.conf и настройте параметры. Всё должно работать из коробки, но в зависимости от цели я рекомендую изменить размеры фрагментов (chunk sizes).
Этот инструмент не принимает никаких аргументов через CLI, поэтому просто введите:
python3 extended-xss-search.py
Можно задать множество опций и настроек, вот некоторые пояснения.
Основной конфигурационный файл — это "app-settings.conf", всё должно быть настроено в нём! Кроме того, есть несколько других файлов, которые позволяют задать более сложные данные, такие как заголовки, URL-адреса и куки.
config/cookie-jar.txt
Используйте этот файл для добавления строки cookie. Я обычно копирую ту, которая видна в каждом запросе Burp. Пожалуйста, просто скопируйте значение из заголовка "Cookie:". Пример ввода есть в файле по умолчанию.
config/http-headers.txt
Этот файл определяет HTTP-заголовки, которые добавляются к запросу и модифицируются (полезная нагрузка добавляется к каждому). Самые важные уже есть в файле. Но вы можете добавить и другие.
config/parameters.txt
Инструмент имеет возможность перебора GET и POST параметров. В этом случае используются эти параметры (+ те, что в строке запроса). Каждому параметру присваивается значение полезной нагрузки. Наиболее важные уже есть в этом файле.
config/urls-to-test.txt
Это тот файл, который вам нужен! Пожалуйста, добавьте сюда ваши ссылки для сканирования. Допускаются следующие форматы:
В последнем случае перед адресом добавляется "http://". Этот инструмент предназначен для работы с хорошим списком URL-адресов. Хороший способ получить такой список — просто экспортировать его с помощью Burp. Тогда у вас будет валидный список URL-адресов. Всё, что вам нужно сделать, это просто добавить свои куки.
logs/
Это папка логов, куда записывается всё!
Файл app-settings.conf определяет рабочий процесс программы. Это самый важный файл, в нём можно активировать/деактивировать различные модули.
Основные настройки
HTTPTimeout
Некоторые запросы могут выполняться долго. Здесь вы можете задать максимальное время выполнения одного запроса. Я рекомендую значения от 2 до 6 секунд.
MaxThreads
Чем больше потоков, тем быстрее работает скрипт, но, поскольку мы имеем дело с большим количеством соединений, я обычно держу это значение ниже 10 на своём личном компьютере и около 30 на VPS.
Типы атак
OnlyBaseRequest
Установка этого параметра в "true" приведёт только к "базовым запросам" — это означает, что список URL-адресов просто обходится (spidered) и извлекаются интересные параметры. Вы можете использовать это для быстрого заполнения карты сайта Burp.
UsePost
Можно пропустить POST-запросы, установив значение "false"
UseGet
Аналогично — пропустить GET-запросы, если установлено "false"
Настройки типа атаки
GetChunkSize
Сколько GET-параметров тестировать в одном запросе?
PostChunkSize
Сколько POST-параметров тестировать в одном запросе?
Туннелирование
Также возможно использование туннеля, например "127.0.0.1:8080" (Burp Proxy), для мониторинга всего трафика внутри Burp.
Active
Установка "true" заставит скрипт использовать туннельное соединение.
Tunnel
Укажите здесь ваш прокси-сервер "ip:port".
Результат будет следующим: когда вы откроете Burp, вы сможете наблюдать свою HTTP-историю:



Пожалуйста, просто создайте issue и пометьте его как feature request.
Вам понравился этот инструмент? Помог ли он получить баунти? Хотите отблагодарить/поддержать меня? Почему бы и нет!