
Простой, быстрый веб-краулер, предназначенный для лёгкого и быстрого обнаружения конечных точек и ресурсов в веб-приложении.
Быстрый веб-краулер на Go для сбора URL-адресов и расположений JavaScript-файлов. По сути, это простая реализация отличной библиотеки Gocolly.
Одиночный URL:
echo https://google.com | hakrawler
Несколько URL:
cat urls.txt | hakrawler
Тайм-аут для каждой строки stdin через 5 секунд:
cat urls.txt | hakrawler -timeout 5
Отправка всех запросов через прокси:
cat urls.txt | hakrawler -proxy http://localhost:8080
Включение поддоменов:
echo https://google.com | hakrawler -subs
Примечание: распространённая проблема — инструмент не возвращает URL. Обычно это происходит, когда указан домен (https://example.com), но он перенаправляет на поддомен (https://www.example.com). Поддомен не входит в область сканирования, поэтому URL не выводятся. Чтобы это исправить, укажите конечный URL в цепочке перенаправлений или используйте опцию
-subsдля включения поддоменов.
Получить все поддомены google, найти те, которые отвечают по http(s), и обойти их все.
echo google.com | haktrails subdomains | httpx | hakrawler
Сначала необходимо установить go.
Затем выполните эту команду для загрузки и компиляции hakrawler:
go install github.com/hakluke/hakrawler@latest
Теперь вы можете запускать ~/go/bin/hakrawler. Если вы хотите запускать просто hakrawler без полного пути, вам нужно export PATH="~/go/bin/:$PATH". Вы также можете добавить эту строку в файл ~/.bashrc, чтобы сохранить её постоянно.
echo https://www.google.com | docker run --rm -i hakluke/hakrawler:v2 -subs
Значительно проще использовать метод через dockerhub, указанный выше, но если вы предпочитаете запускать локально:
git clone https://github.com/hakluke/hakrawler
cd hakrawler
sudo docker build -t hakluke/hakrawler .
sudo docker run --rm -i hakluke/hakrawler --help
Примечание: это установит более старую версию hakrawler без всех функций, и она может быть нестабильной. Рекомендую использовать один из других методов.
sudo apt install hakrawler
Затем, чтобы запустить hakrawler:
echo https://www.google.com | docker run --rm -i hakluke/hakrawler -subs
Usage of hakrawler:
-d int
Depth to crawl. (default 2)
-dr
Disable following HTTP redirects.
-h string
Custom headers separated by two semi-colons. E.g. -h "Cookie: foo=bar;;Referer: http://example.com/"
-i Only crawl inside path
-insecure
Disable TLS verification.
-json
Output as JSON.
-proxy string
Proxy URL. E.g. -proxy http://127.0.0.1:8080
-s Show the source of URL based on where it was found. E.g. href, form, script, etc.
-size int
Page size limit, in KB. (default -1)
-subs
Include subdomains for crawling.
-t int
Number of threads to utilise. (default 8)
-timeout int
Maximum time to crawl each URL from stdin, in seconds. (default -1)
-u Show only unique urls.
-w Show at which link the URL is found.