
Инструмент агрегации scope для HackerOne, Bugcrowd, Intigriti, YesWeHack и Immunefi!
Веб-интерфейс и API для агрегации scope-ов баг-баунти программ с HackerOne, Bugcrowd, Intigriti и YesWeHack.
cd website
cp .env.example .env
# Отредактируйте .env — как минимум задайте POSTGRES_PASSWORD и свои учетные данные платформ
docker compose up -d --build
Сайт будет доступен по адресу https://yourdomain.com (Caddy автоматически обрабатывает HTTPS через Let's Encrypt).
Если ваш сервер находится за Cloudflare (проксированный DNS), стандартный ACME-челлендж HTTP не сработает. Используйте compose-файл для Cloudflare, который собирает кастомный Caddy с плагином Cloudflare DNS:
docker compose -f docker-compose.cloudflare.yml up -d --build
Укажите CF_API_TOKEN в вашем .env. Создайте токен на https://dash.cloudflare.com/profile/api-tokens с разрешением Zone:DNS:Edit для вашего домена.
Требования: Go 1.24+, запущенный экземпляр PostgreSQL.
DB_URL="postgres://postgres:yourpassword@localhost:5432/bbscope?sslmode=disable" \
go run *.go serve --dev --poll-interval 0 --listen localhost:7001
Флаг --dev включает режим только HTTP (без TLS). --poll-interval 0 отключает фоновый опрос, поэтому учетные данные платформ не требуются.
Подключение к базе данных читается из переменной окружения DB_URL или поля db_url в ~/.bbscope.yaml.
Все учётные данные платформ являются опциональными. Не настроенные платформы просто пропускаются при опросе.
Установите OPENAI_API_KEY и, опционально, OPENAI_MODEL (по умолчанию gpt-4.1-mini), чтобы включить AI-нормализацию целей scope. Результаты кешируются для каждой цели, чтобы минимизировать вызовы API.
Чтобы защитить сайт HTTP-базовой аутентификацией:
Сгенерируйте хеш пароля:
docker run --rm caddy:2-alpine caddy hash-password --plaintext 'yourpassword'
Скопируйте пример конфига в conf.d/:
cp basicauth.caddy.example conf.d/basicauth.caddy
Отредактируйте conf.d/basicauth.caddy и добавьте ваше имя пользователя и хеш:
basic_auth {
myuser $2a$14$hashgoeshere...
}
Перезапустите Caddy: docker compose restart caddy
Чтобы отключить, удалите conf.d/basicauth.caddy и перезапустите.
caddy (ports 80/443) → bbscope-web (:8080) → postgres
conf.d/*.caddy автоматически импортируются.Сайт предоставляет публичный API:
Параметры запроса: scope (in/out/both), platform, type, raw (пропустить AI), format (json/text).
Вывод по умолчанию — текст, разделённый новой строкой; добавьте format=json для JSON. Ответы кешируются на 5 минут.
| Флаг | По умолчанию | Описание |
|---|
--dev, -d | false | Режим разработки (HTTP, без TLS) |
--poll-interval | 6 | Часов между циклами опроса (0 — отключить) |
--listen | :8080 | HTTP-адрес прослушивания |
--domain | bbscope.com | Домен для sitemap/robots.txt |
| Платформа | Переменные окружения | Примечания |
|---|
| HackerOne | H1_USERNAME, H1_TOKEN | API-токен |
| Bugcrowd | BC_EMAIL, BC_PASSWORD, BC_OTP | Или установите BC_PUBLIC_ONLY=1 только для публичных программ |
| Intigriti | IT_TOKEN | Bearer-токен |
| YesWeHack | YWH_EMAIL, YWH_PASSWORD, YWH_OTP | Email + пароль + OTP |
| Endpoint | Описание |
|---|
GET /api/v1/programs | Список всех программ |
GET /api/v1/programs/{platform}/{handle} | Детали одной программы |
GET /api/v1/targets/{type} | Цели по типу: wildcards, domains, urls, ips, cidrs |