إضافة لـ Burp Suite تُتيح واجهة Montoya API الكاملة عبر REST API محلي، مع Swagger UI
يحوّل reburp برنامج Burp Suite إلى شيء يمكنك برمجته. يُحمَّل كامتداد Java ويقدّم
واجهة Montoya API
عبر واجهة HTTP REST API على http://127.0.0.1:9090، مع مواصفة OpenAPI وواجهة Swagger UI. أي شيء
كنت ستنقر عليه في Burp - قراءة سجل الوكيل (proxy history)، إرسال طلب، تعديل النطاق (scope)، تشغيل
فحص، فك ترميز رمز (token) - يصبح استدعاء JSON يمكن لوكيل أو سطر curl تنفيذه.
يتكامل مع مهارة الوكيل burp-interaction بحيث يمكن
لمساعد الذكاء الاصطناعي تشغيل Burp مباشرة.
ميزات Burp التي يمكن لوكيلك الآن تشغيلها عبر REST:
احصل على أحدث reburp-*.jar من Releases، أو
ابنِه من المصدر (يتطلب Java 17+).
كل إصدار من reburp مبني مقابل حد أدنى من إصدار Burp Suite (Montoya). على إصدار Burp أقدم، احصل على الـ jar المطابق من Releases.
git clone https://github.com/forefy/reburp.git
cd reburp
./gradlew shadowJar
# Output: build/libs/reburp.jar (plus a versioned copy, reburp-<version>.jar)
حمّل reburp.jar بدلاً من النسخة المُرقّمة. يعيد Burp تحميل الامتداد من المسار
الذي حُمّل منه، ويتغير الاسم المُرقّم مع كل إصدار، لذا يُبقي الاسم غير المُرقّم
على إعادة التحميل بعد الترقية بدلاً من تركك بصمت على البناء السابق.
إذا لم يكن JAVA_HOME مضبوطاً لديك، وجّهه إلى JDK الخاص بك:
JAVA_HOME=/path/to/jdk17 ./gradlew shadowJar
build/libs/reburp.jar (أو reburp-*.jar الذي حمّلته من Releases)يظهر تبويب reburp في Burp يعرض كل استدعاء REST أثناء حدوثه.
كل صف هو استدعاء REST واحد. عند تحديده يظهر طلب API واستجابته، بالإضافة إلى الطلب والاستجابة التي أرسلها reburp إلى الهدف نيابةً عنك.
بعد التحميل، افتح في متصفحك:
المواصفة هي المصدر الموثوق لأشكال الطلبات والاستجابات.
| المجموعة | البادئة | أبرز الميزات |
|---|---|---|
| الحالة (Status) | /api/status | معلومات الامتداد، إصدار Burp |
| الوكيل (Proxy) | /api/proxy/ | السجل، البحث، التعليق التوضيحي، تبديل الاعتراض (intercept)، سجل WebSocket |
| خريطة الموقع (Site Map) | /api/sitemap/ | عرض، بحث |
| النطاق (Scope) | /api/scope/ | التحقق من وجود URL في النطاق، إضافة/إزالة قواعد النطاق |
| HTTP | /api/http/ | إرسال HTTP/1.1 و HTTP/2، حقن رمز المصادقة، التحليل، المقارنة (diff)، المعاملات، الانعكاس، نقاط الإدراج، ملفات تعريف الارتباط (cookies) |
| الرسائل (Messages) | /api/http/message/ | فحص وإعادة كتابة الطلبات والاستجابات: الترويسات، المعاملات، العلامات، أنواع MIME، التوقيت |
| الماسح الضوئي (Scanner) | /api/scanner/ | المشكلات، بدء التدقيق/الزحف، حالة المهمة (Pro فقط) |
| Collaborator | /api/collaborator/ | توليد الحمولات (payloads)، استقصاء التفاعلات (Pro فقط) |
| Repeater / Intruder | /api/repeater/, /api/intruder/ | إرسال الطلبات إلى Repeater و Intruder |
| محرك الطلبات (Request Engine) | /api/http/engine/ | محرك طلبات غير متزامن عالي الإنتاجية: مجموعات الموارد، حد التزامن، التقييد (throttle)، إعادة المحاولات، إحصاءات مباشرة، إيقاف مؤقت/استئناف/إلغاء، النتائج (Burp 2026.x) |
| الإعدادات (Config) | /api/config/ | الحصول على/ضبط خيارات المشروع والمستخدم، حالة محرك المهام |
| Match & Replace | /api/proxy/match-replace/ | عرض، إضافة، إزالة قواعد المطابقة والاستبدال للوكيل |
| الجلسات (Sessions) | /api/sessions/ | عرض وحذف قواعد معالجة الجلسات (لا يملك Burp إجراء إضافة ترويسة) |
| التفاعل (Engagement) | /api/engagement/ | مولّد CSRF PoC، اكتشاف المحتوى، إيجاد المراجع، الإرسال إلى decoder |
| Bambda | /api/bambda/ | استيراد نصوص Bambda، توليد سلاسل التصفية |
# Is the extension up?
curl -s http://127.0.0.1:9090/api/status
# Last 10 proxy entries
curl -s "http://127.0.0.1:9090/api/proxy/history?limit=10"
# Send a request through Burp
curl -s http://127.0.0.1:9090/api/http/send \
-H 'Content-Type: application/json' \
-d '{"host":"example.com","port":443,"use_https":true,"method":"GET","path":"/"}'
# Add a host to scope
curl -s http://127.0.0.1:9090/api/scope/include \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com"}'
يرتبط خادم REST بـ 127.0.0.1 فقط، لكن المنفذ غير مُصادَق عليه ويستجيب
لـ أي أصل (origin). أي شيء يمكنه الوصول إلى localhost:9090 يمكنه تشغيل Burp، بما في ذلك صفحة ويب
مفتوحة في متصفحك. تعامل مع المنفذ كموثوق محلياً فقط ولا تعرّضه أبداً خارج loopback.
وبسبب ذلك، تنفيذ أوامر نظام التشغيل معطّل افتراضياً. تُرجع /api/utils/shell/execute و
/api/utils/shell/execute-raw رمز 403 ما لم يرَ الامتداد هذا في بيئة عملية Burp نفسها:
REBURP_ENABLE_SHELL=1
مع ضبطه، يحصل أي أصل يمكنه الوصول إلى المنفذ على تنفيذ عن بُعد للأوامر على المضيف. فعّله
فقط عندما تقبل ذلك. يُكتب كل استدعاء في تبويب مخرجات الامتداد.
يبلّغ GET /api/utils/shell/status عمّا إذا كان مفعّلاً ولا يتطلب تفعيله أبداً.
يُتحقق من ادعاء "Montoya API الكاملة" آلياً بواسطة tools/api_coverage.py،
الذي يشغّله سير عمل البناء في CI عند كل دفعة (push) ويفشل إذا تُرك أي
أسلوب قابل للربط غير مكشوف. يُختبر السلوك بشكل منفصل بواسطة tools/smoke_test.py مقابل امتداد محمّل.
9090. غيّر port في BurpRestApiExtension.kt وأعد البناء إذا لزم الأمر.compileOnly - غير مُضمّنة؛ يوفّرها Burp في وقت التشغيل.{ "error": "..." }.OpenApiSpec.kt بالإضافة إلى أجزاء في docs/. لإضافة مجموعة مسارات،
اكتب جزء *Paths() و *Schemas() وأدرجه في docs/OpenApiSpecExtra.kt.المشكلات وطلبات السحب (pull requests) مرحّب بها. يُرجى تشغيل python3 tools/api_coverage.py و
./gradlew shadowJar قبل فتح PR. يجب أن تُشحن مجموعات المسارات الجديدة مع جزء OpenAPI الخاص بها
حتى تبقى الوثائق كاملة.
| Organizer |
/api/organizer/ |
| عرض العناصر، إرسال الطلبات إلى Organizer |
| المشكلات (Issues) | /api/issues/ | إنشاء مشكلات تدقيق مخصصة |
| الأحداث (Events) | /api/events/ | تشغيل وإيقاف مراقبي الحركة السلبية، ثم قراءة الأحداث المُلتقطة |
| بيانات الامتداد (Extension Data) | /api/extension-data/ | تخزين مفتاح/قيمة مُصنّف محفوظ في ملف مشروع Burp |
| التفضيلات (Preferences) | /api/preferences/ | تفضيلات الامتداد المحفوظة حسب النوع |
| التسجيل (Logging) | /api/logging/ | الكتابة إلى تبويبات مخرجات وأخطاء الامتداد وسجل أحداث Burp |
| سجل النشاط (Activity Log) | /api/log/ | الاستعلام عن سجل الاستدعاءات المحفوظ الخاص بـ reburp |
| الذكاء الاصطناعي (AI) | /api/ai/ | حالة Burp AI والدردشة (حيثما توفرت) |
| Meta | /api/meta/ | مكونات إصدار Burp، معلومات تحميل الامتداد، مفردات التعداد (enum) |
| الأدوات المساعدة (Utilities) | /api/utils/ | ترميز/فك ترميز URL، base64، hash، فك ترميز JWT، سلسلة عشوائية، فك الضغط |
| الأرقام (Numbers) | /api/utils/number/ | التحويل بين الثنائي، الثماني، العشري، الست عشري والأسس الاعتباطية |
| JSON | /api/utils/json/ | التحقق، القراءة والتحرير عبر المؤشر (pointer)، فحص البنية، التطبيع |
| البايتات (Bytes) | /api/utils/bytes/ | البحث، التقطيع، الإلحاق، التخصيص وفحص مخازن البايتات |
| الترتيب (Ranking) | /api/utils/rank | ترتيب سجل الوكيل حسب مدى شذوذ كل تبادل |
| Shell | /api/utils/shell/ | تنفيذ أوامر نظام التشغيل. معطّل افتراضياً، انظر الأمان |