
Высокоскоростной инструмент для обнаружения API и веб-контента, который перебирает маршруты с использованием скомпилированных наборов данных Swagger, поддерживая сканирование в глубину, пользовательские списки слов и одновременное сканирование хостов.

Долгое время обнаружение контента было сосредоточено на поиске файлов и папок. Хотя этот подход эффективен для устаревших веб-серверов, которые обслуживают статические файлы или отвечают 3xx при частичном пути, он больше не эффективен для современных веб-приложений, особенно API.
Со временем мы видели, как много усилий было вложено в ускорение инструментов обнаружения контента, чтобы можно было использовать более крупные списки слов, однако искусство обнаружения контента не получило инноваций.
Kiterunner — это инструмент, способный не только выполнять традиционное обнаружение контента с молниеносной скоростью, но и перебирать маршруты/конечные точки в современных приложениях.
Современные фреймворки приложений, такие как Flask, Rails, Express, Django и другие, следуют парадигме явного определения маршрутов, которые ожидают определенные HTTP-методы, заголовки, параметры и значения.
При использовании традиционных инструментов обнаружения контента такие маршруты часто упускаются и их трудно обнаружить.
Собрав набор спецификаций Swagger и сконденсировав его в собственную схему, Kiterunner может использовать этот набор для перебора конечных точек API, отправляя правильный HTTP-метод, заголовки, путь, параметры и значения для каждого отправляемого запроса.
Файлы Swagger были собраны из нескольких источников данных, включая интернет-сканирование 40+ наиболее распространенных путей Swagger. Другие источники данных включали GitHub через BigQuery и APIs.guru.
Вы можете загрузить предварительно собранную копию с https://github.com/assetnote/kiterunner/releases.
make build
ln -s $(pwd)/dist/kr /usr/local/bin/kr
kr kb compile routes.json routes.kite
kr scan hosts.txt -w routes.kite -x 20 -j 100 --ignore-length=1053
Наборы данных JSON можно найти ниже:
- [routes-large.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-large.json.tar.gz) (118MB сжатый, 2.6GB распакованный)
- [routes-small.json](https://wordlists-cdn.assetnote.io/rawdata/kiterunner/routes-small.json.tar.gz) (14MB сжатый, 228MB распакованный)
Кроме того, можно загрузить скомпилированные файлы `.kite` по ссылкам ниже:
- [routes-large.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-large.kite.tar.gz) (40MB сжатый, 183M распакованный)
- [routes-small.kite](https://wordlists-cdn.assetnote.io/data/kiterunner/routes-small.kite.tar.gz) (2MB сжатый, 35MB распакованный)
## AUR
Пользователи дистрибутивов на основе Arch могут загрузить предварительно собранный бинарный файл из [AUR](https://aur.archlinux.org/packages/kiterunner-bin/)
Вы можете использовать "Aur Helper", например `yay`, для установки kiterunner```
yay -S kiterunner-bin
kr [scan|brute] [flags]
- `<input>` может быть файлом, доменом или URI. мы разберемся за вас. См. [Input/Host Formatting](#inputhost-formatting) для получения дополнительных сведений```
# Just have a list of hosts and no wordlist
kr scan hosts.txt -A=apiroutes-210328:20000 -x 5 -j 100 --fail-status-codes 400,401,404,403,501,502,426,411
# You have your own wordlist but you want assetnote wordlists too
kr scan target.com -w routes.kite -A=apiroutes-210328:20000 -x 20 -j 1 --fail-status-codes 400,401,404,403,501,502,426,411
# Bruteforce like normal but with the first 20000 words
kr brute https://target.com/subapp/ -A=aspx-210328:20000 -x 20 -j 1
# Use a dirsearch style wordlist with %EXT%
kr brute https://target.com/subapp/ -w dirsearch.txt -x 20 -j 1 -exml,asp,aspx,ashx -D
Usage: kite scan [flags]