العودة إلى التحديثات
UpdatedJul 20, 2026

bbscope — Updated!

أداة تجميع النطاق لـ HackerOne و Bugcrowd و Intigriti و YesWeHack و Immunefi!

مشاركة

bbscope.com

واجهة ويب وAPI لتجميع نطاقات برامج مكافآت الاختراق من HackerOne وBugcrowd وIntigriti وYesWeHack.

بداية سريعة (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 يتولى HTTPS تلقائيًا عبر Let's Encrypt).

تحدي DNS لـ Cloudflare

إذا كان خادمك خلف Cloudflare (DNS موجه)، فلن يعمل تحدي ACME HTTP القياسي. استخدم ملف compose الخاص بـ Cloudflare بدلاً من ذلك، والذي يبني Caddy مخصصًا مع إضافة DNS الخاصة بـ Cloudflare:

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 يعطل الاستقصاء الخلفي حتى لا تحتاج إلى بيانات اعتماد المنصة.

أعلام أمر Serve

العلمالافتراضيالوصف
--dev، -dfalseوضع التطوير (HTTP، بدون TLS)
--poll-interval6ساعات بين دورات الاستقصاء (0 لتعطيل)
--listen:8080عنوان الاستماع HTTP
--domainbbscope.comالنطاق لخريطة الموقع/robots.txt

يتم قراءة اتصال قاعدة البيانات من متغير البيئة DB_URL أو db_url في ~/.bbscope.yaml.

الإعدادات

بيانات اعتماد المنصات

جميع بيانات اعتماد المنصات اختيارية. يتم تخطي المنصات غير المكونة ببساطة أثناء الاستقصاء.

المنصةمتغيرات البيئةملاحظات
HackerOneH1_USERNAME, H1_TOKENرمز API
BugcrowdBC_EMAIL, BC_PASSWORD, BC_OTPأو قم بتعيين BC_PUBLIC_ONLY=1 للبرامج العامة فقط
IntigritiIT_TOKENرمز Bearer
YesWeHackYWH_EMAIL, YWH_PASSWORD, YWH_OTPبريد إلكتروني + كلمة مرور + OTP

التطبيع بالذكاء الاصطناعي (اختياري)

قم بتعيين OPENAI_API_KEY واختياريًا OPENAI_MODEL (الافتراضي gpt-4.1-mini) لتفعيل تطبيع أهداف النطاق بالذكاء الاصطناعي. يتم التخزين المؤقت لكل هدف لتقليل مكالمات API.

المصادقة الأساسية (اختياري)

لحماية الموقع بمصادقة HTTP الأساسية:

  1. قم بإنشاء تجزئة كلمة المرور:

    docker run --rm caddy:2-alpine caddy hash-password --plaintext 'yourpassword'
    
  2. انسخ ملف الإعدادات النموذجي إلى conf.d/:

    cp basicauth.caddy.example conf.d/basicauth.caddy
    
  3. قم بتحرير conf.d/basicauth.caddy وأضف اسم المستخدم والتجزئة:

    basic_auth {
        myuser $2a$14$hashgoeshere...
    }
    
  4. أعد تشغيل 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).

الإخراج الافتراضي هو نص مفصول بأسطر جديدة؛ أضف format=json للحصول على JSON. يتم تخزين الردود مؤقتًا لمدة 5 دقائق.

الفئات