
Невероятно быстрый краулер ответов для поиска вкусностей в исходном коде! 😎🔥
Протестированные среды: Windows, macOS, Linux и подсистема Windows для Linux (WSL)
Поддержите этот проект, став спонсором. Ознакомьтесь с этими замечательными спонсорами:
Oxylabs предоставляет премиум-прокси с более чем 100 млн IP-адресов в 195 странах и готовые к использованию Scraper API. Вы можете использовать уникальный промо-код boost35, чтобы получить скидку 35% на резидентные, мобильные прокси, Web Unblocker и Scraper API.
Сканировать ответы на предмет скрытых конечных точек, отправляя запросы или используя локальные файлы ответов (если они есть).
Создавать список JavaScript-переменных, найденных в исходном коде.
Извлекать все ссылки на социальные сети с веб-сайтов для выявления потенциально неработающих ссылок.
Перебор хоста по словарю.
Получать коды состояния для списка URL / Фильтрация живых доменов из списка хостов.
Все перечисленные выше функции выполняются с высокой скоростью.
SourceWolf использует модуль Session из библиотеки requests, что означает повторное использование TCP-соединения, что делает его очень быстрым.
SourceWolf предоставляет возможность сканировать файлы ответов локально, чтобы не отправлять повторные запросы к конечной точке, ответ на которую у вас уже есть.
Конечные точки выводятся в полной форме с хостом, например https://example.com/api/admin, а не как /api/admin. Это может быть полезно при сканировании списка хостов.
> python3 sourcewolf.py -h
-l LIST, --list LIST Список URL-адресов JavaScript
-u URL, --url URL Один URL
-t THREADS, --threads THREADS
Количество одновременных потоков (по умолчанию 5)
-o OUTPUT_DIR, --output directory-name OUTPUT_DIR
Сохранять текст ответа URL в каталог для дальнейшего анализа
-s STATUS_CODE_FILE, --store-status-code STATUS_CODE_FILE
Сохранять код состояния в файл
-b BRUTE, --brute BRUTE
Перебор URL с ключевым словом FUZZ (--wordlist также должен использоваться вместе с этим)
-w WORDLIST, --wordlist WORDLIST
Словарь для перебора URL
-v, --verbose Подробный режим (отображает все отправляемые запросы)
-c CRAWL_OUTPUT, --crawl-output CRAWL_OUTPUT
Выходной каталог для сохранения результатов сканирования
-d DELAY, --delay DELAY
Задержка между запросами (в секундах)
--timeout TIMEOUT Максимальное время ожидания тайм-аута соединения (в секундах)
--headers HEADERS Добавить пользовательские заголовки (должны передаваться в формате {'Token': 'YOUR-TOKEN-HERE'}) --> Словарь
--cookies COOKIES Добавить куки (должны передаваться в формате {'Cookie': 'YOUR-COOKIE-HERE'}) --> Словарь
--only-success Выводить только ответы 2XX
--local LOCAL Каталог с локальными файлами ответов для сканирования
--no-colors Убрать цвета из вывода
--update-info Проверить наличие последней версии и обновить, если требуется
Полное использование:
python3 sourcewolf.py -l domains -o output/ -c crawl_output
domains — это список URL-адресов, которые вы хотите сканировать, в формате:
https://example.com/
https://exisiting.example.com/
https://exisiting.example.com/dashboard
https://example.com/hitme
output/ — это каталог, в котором сохраняются текстовые файлы ответов входного файла.
Они сохраняются в формате output/2XX, output/3XX, output/4XX и output/5XX.
output/2XX хранит ответы с кодами состояния 2XX и так далее!
crawl_output, указанный с помощью флага -c, используется для сохранения вывода в каталог, который SourceWolf создаёт, сканируя HTTP-файлы ответов, хранящиеся в каталоге output/ (в настоящее время только конечные точки).
Каталог crawl_output/ содержит:
endpoints - Все найденные конечные точки
jsvars - Все JavaScript-переменные
Каталог будет содержать больше файлов по мере интеграции новых модулей и функций в SourceWolf.
(ИЛИ)
Для одного URL:
python3 sourcewolf.py -u example.com/api/endpoint -o output/ -c crawl_output
Только флаг -l заменяется на -u, всё остальное остаётся прежним.
python3 sourcewolf.py -b https://hackerone.com/FUZZ -w /path/to/wordlist -s status
Флаг -w необязательный. Если не указан, будет использоваться словарь по умолчанию из 6124 слов.
SourceWolf заменяет ключевое слово FUZZ из значения -b на слова из словаря и отправляет запросы. Это позволяет также перебирать значения параметров GET.
-s сохранит вывод в файл с именем status.
Скриншот не включён, так как вывод похож на режим «сканирование ответов».
python3 sourcewolf -l domains -s live
Файл domains может содержать что угодно: поддомены, конечные точки, JS-файлы.
Флаг -s записывает ответ в файл live.
Как режим перебора, так и режим проверки доступности по умолчанию выводят все коды состояния, кроме 404. Вы можете настроить это поведение на вывод только ответов
2XXс помощью флага--only-success.
SourceWolf также использует многопоточность.
Количество потоков по умолчанию для всех режимов — 5. Вы можете увеличить количество потоков с помощью флага -t.
В дополнение к трём вышеуказанным режимам есть возможность сканировать локально, если у вас есть локальные файлы и они соответствуют соглашениям об именах, совместимым с SourceWolf.
Сохраните все ответы в каталог, например responses/:
python3 sourcewolf.py --local responses/
Это просканирует локальный каталог и выдаст результаты.
Поиск поддоменов
|
|
SourceWolf
|
|
Отфильтровать живые поддомены
|
|
Сохранить ответы и найти скрытые конечные точки / Перебор каталогов