
bbscope — Updated!
HackerOne, Bugcrowd, Intigriti, YesWeHack, और Immunefi के लिए स्कोप एकत्रीकरण उपकरण!
bbscope.com
बग बाउंटी प्रोग्राम स्कोप्स को HackerOne, Bugcrowd, Intigriti, और YesWeHack से एकत्र करने के लिए वेब इंटरफ़ेस और API।
त्वरित आरंभ (Docker)
cd website
cp .env.example .env
# Edit .env — at minimum set POSTGRES_PASSWORD and your platform credentials
docker compose up -d --build
साइट https://yourdomain.com पर उपलब्ध होगी (Caddy Let's Encrypt के माध्यम से स्वचालित रूप से HTTPS संभालता है)।
Cloudflare DNS चुनौती
यदि आपका सर्वर Cloudflare (प्रॉक्सीड DNS) के पीछे है, तो मानक HTTP ACME चुनौती काम नहीं करेगी। इसके बजाय Cloudflare compose फ़ाइल का उपयोग करें, जो Cloudflare DNS प्लगइन के साथ एक कस्टम Caddy बनाती है:
docker compose -f docker-compose.cloudflare.yml up -d --build
अपने .env में CF_API_TOKEN सेट करें। 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 बैकग्राउंड पोलिंग को अक्षम करता है ताकि आपको प्लेटफ़ॉर्म क्रेडेंशियल्स की आवश्यकता न हो।
सर्व कमांड फ़्लैग्स
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
--dev, -d | false | विकास मोड (HTTP, कोई TLS नहीं) |
--poll-interval | 6 | पोलिंग चक्रों के बीच घंटे (0 अक्षम करने के लिए) |
--listen | :8080 | HTTP सुनने का पता |
--domain | bbscope.com | साइटमैप/robots.txt के लिए डोमेन |
डेटाबेस कनेक्शन DB_URL env var या ~/.bbscope.yaml में db_url से पढ़ा जाता है।
कॉन्फ़िगरेशन
प्लेटफ़ॉर्म क्रेडेंशियल्स
सभी प्लेटफ़ॉर्म क्रेडेंशियल्स वैकल्पिक हैं। पोलिंग के दौरान अपरिभाषित प्लेटफ़ॉर्म को छोड़ दिया जाता है।
| प्लेटफ़ॉर्म | Env vars | नोट्स |
|---|---|---|
| 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 | ईमेल + पासवर्ड + OTP |
AI सामान्यीकरण (वैकल्पिक)
AI-आधारित स्कोप लक्ष्य सामान्यीकरण सक्षम करने के लिए OPENAI_API_KEY और वैकल्पिक रूप से OPENAI_MODEL (डिफ़ॉल्ट gpt-4.1-mini) सेट करें। 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
- Caddy TLS समाप्ति और रिवर्स प्रॉक्सीिंग संभालता है।
conf.d/*.caddyमें अतिरिक्त कॉन्फ़िग टुकड़े स्वचालित रूप से आयात किए जाते हैं। - bbscope-web साइट की सेवा करता है और बैकग्राउंड पोलर्स चलाता है।
- PostgreSQL प्रोग्राम, लक्ष्य और स्कोप परिवर्तन इतिहास संग्रहीत करता है। स्टार्टअप पर स्कीमा ऑटो-माइग्रेट होती है।
API
साइट एक सार्वजनिक API उजागर करती है:
| एंडपॉइंट | विवरण |
|---|---|
GET /api/v1/programs | सभी प्रोग्राम सूचीबद्ध करें |
GET /api/v1/programs/{platform}/{handle} | एकल प्रोग्राम विवरण |
GET /api/v1/targets/{type} | प्रकार के अनुसार लक्ष्य: wildcards, domains, urls, ips, cidrs |
क्वेरी पैराम: scope (in/out/both), platform, type, raw (AI छोड़ें), format (json/text)।
डिफ़ॉल्ट आउटपुट न्यूलाइन-डिलीमिटेड टेक्स्ट है; JSON के लिए format=json जोड़ें। प्रतिक्रियाएँ 5 मिनट के लिए कैश की जाती हैं।