
واجهة برمجة تطبيقات REST/JSON لأداة الأمان Burp Suite.
⚠️ تحذير: لم يعد هذا المشروع قيد الصيانة النشطة.
في حين سيظل المستودع متاحاً للرجوع إليه، لن يتم تقديم أي تحديثات أو إصلاحات للأخطاء أو دعم إضافي.
واجهة REST/JSON API لأداة الأمان Burp Suite.
منذ أول commit في عام 2016، كانت burp-rest-api هي الأداة الافتراضية لأتمتة فحص الويب المدعومة من BurpSuite. اعتمد العديد من المتخصصين والمؤسسات الأمنية على هذه الإضافة لتنسيق عمل Burp Spider و Scanner.
burp-rest-api-2.3.2.jar) من صفحة الإصداراتburpsuite_pro.jar من تثبيت Burp Suite محليعلى لينكس وماك:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar:burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
على ويندوز:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar;burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
مهم!!!
يدعم burp-rest-api كلاً من الإصدار القديم Burp Suite Professional v1.7 والإصدار الأحدث Burp Suite Professional v2025.x. نظراً لاعتماد هذا المشروع على Burp Extender API، قد يختلف سلوك بعض الوظائف قليلاً حسب إصدار Burp. على سبيل المثال، لم يعد تكوين ماسح Burp Suite في الإصدار v2025.x قابلاً للتخصيص.
بشكل افتراضي، يتم تشغيل Burp في وضع headless مع تشغيل الوكيل (Proxy) على المنفذ 8080/tcp (محلي فقط) ونقطة نهاية REST على المنفذ 8090/tcp (محلي فقط).
لتشغيل Burp في وضع الواجهة الرسومية (UI) من سطر الأوامر، أضف الوسيطة التالية:
--headless.mode=false
لتعديل منفذ الخادم الذي يمكن الوصول من خلاله إلى API، أضف الوسيطة التالية:
--server.port=8081
أو
--port=8081
يمكنك أيضاً تعديل عنوان الخادم المستخدم لربط عنوان الشبكة:
--server.address=192.168.1.2
أو
--address=192.168.1.2
تُستخدم وسائط سطر الأوامر التالية فقط بواسطة الإضافة لتكوين وضع التشغيل ورقم المنفذ.
--burp.jar=<filename.jar> : يقوم بتحميل ملف Burp jar ديناميكياً وتعريضه عبر REST APIs. تعمل هذه العلامة على Java <= 1.8 فقط! استخدم سكربت burp-rest-api.{sh,bat} لإصدارات Java الأحدث.
--burp.ext=<filename.{jar,rb,py} : يقوم بتحميل إضافات Burp المحددة أثناء بدء تشغيل التطبيق. يمكن تكرار هذه العلامة.
--server.port=<port_number> : نقطة نهاية REST API متاحة على رقم المنفذ المحدد. --port=<port_number>
تعمل كوسيطة مختصرة.
--server.address=<network address> : عنوان الشبكة الذي يجب أن ترتبط به نقطة نهاية REST API. --address=<address_ip>
تعمل كوسيطة مختصرة.
--apikey=<customApiKey> : يقوم بتمكين مصادقة مفتاح API لحماية واجهات API في /burp/*. يجب تضمين customApiKey، إذا تم تمريره كوسيطة، في كل طلب HTTP كترويسة إضافية: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : عند تعيينه إلى false، يقوم بتشغيل Burp Suite في وضع الواجهة الرسومية (UI). وإلا يقوم بتشغيل Burp Suite في وضع headless. القيمة الافتراضية: خاصية النظام (java.awt.headless)
يتم تمرير وسائط سطر الأوامر المُمررة إلى ملف burp-rest-api JAR القابل للتنفيذ إلى ملف Burp Suite JAR. وبالتالي، يمكن للمرء تمرير وسائط سطر الأوامر التالية الخاصة بملف Burp Suite JAR إلى ملف burp-rest-api JAR للحصول على نفس الوظيفة كما لو كان يمررها مباشرة إلى ملف Burp Suite JAR.
--project-file=<filename> : يفتح ملف مشروع البيانات المحدد المستخدم للاحتفاظ بحالة الأداة. سيتم إنشاء الملف كمشروع جديد إذا لم يكن موجوداً بالفعل.
--config-file=<filename> : يفتح المشروع باستخدام الخيارات الموجودة في ملف تكوين المشروع المحدد. لتحميل تكوينات مشروع متعددة، يمكن تمرير هذه الوسيطة أكثر من مرة بقيم مختلفة.
--user-config-file=<filename> : يفتح المشروع باستخدام الخيارات الموجودة في ملف تكوين المستخدم المحدد. لتحميل تكوينات مستخدم متعددة، يمكن تمرير هذه الوسيطة أكثر من مرة بقيم مختلفة.
لمزيد من المعلومات حول المشاريع، راجع وثائق Burp Suite هنا وهنا. لإعدادات الماسح الضوئي، يرجى الرجوع إلى قسم "دعم Burp Suite والقيود".
إذا تم تشغيل ملف burp-rest-api JAR بدون وسائط --project-file أو --config-file أو --user-config-file، فسيتم تشغيل Burp Suite بملف مشروع مؤقت وبعض التكوين الافتراضي. يتم إنشاء ملف المشروع المؤقت عند تشغيل Burp Suite، ويتم حذفه في نهاية التشغيل.
للتكوين الافتراضي المستخدم لتشغيل Burp Suite، يرجى الرجوع إلى الملفين burp-default-project-options.json و burp-default-user-options.json داخل ملف JAR تحت مجلد static.
يتم استخدام Swagger لتحديد وثائق API. بمجرد تشغيل ملف JAR، يمكنك الوصول إلى الموارد التالية لوثائق API وواجهة Swagger UI. المنفذ 8090 هو منفذ الخادم الافتراضي.
وثائق API: http://localhost:8090/v3/api-docs
واجهة Swagger UI: http://localhost:8090/swagger-ui/index.html#
يأتي هذا المشروع أيضاً مع عميل (BurpClient.java) مكتوب بلغة Java لاستخدامه في مشاريع أخرى. راجع ملف اختبار التكامل BurpClientIT.java لمعرفة كيفية استخدام BurpClient.java.
هذا المشروع مستوحى في الأصل من Resty-Burp، وقد تم تطويره بالشراكة مع Doyensec LLC.
يرحب فريق مشروع burp-rest-api بمساهمات المجتمع. إذا كنت ترغب في المساهمة بالكود ولم تكن قد وقّعت على اتفاقية ترخيص المساهم (CLA)، فسيقوم البوت الخاص بنا بتحديث المشكلة (issue) عند فتح طلب سحب (Pull Request). لأي أسئلة حول عملية CLA، يرجى الرجوع إلى الأسئلة الشائعة حول CLA. للحصول على معلومات أكثر تفصيلاً، راجع CONTRIBUTING.md و FAQ.md.
يحتوي القسم التالي على معلومات مفيدة للبدء في تطوير الإضافة.
lib ضمن دليل المشروع وضع ملف Burp Suite JAR فيه وأعد تسميته إلى "burpsuite_pro.jar" لتشغيل اختبارات التكامل # build the jar
./gradlew clean build
إذا كنت تريد تشغيل الإضافة على إصدارات حديثة (JRE > 9) من JVM، استخدم سكربت الإطلاق burp-rest-api-devel.{sh,bat} بعد نسخ burpsuite_pro.jar و burp-rest-api.jar في نفس دليل السكربت.
# On Unix (Linux, macOS)
./burp-rest-api-devel.sh
# On Windows
./burp-rest-api-devel.bat
حقوق الطبع والنشر (c) 2016 VMware, Inc. جميع الحقوق محفوظة. حقوق الطبع والنشر (c) 2025 Doyensec LLC. جميع الحقوق محفوظة.
يُسمح بإعادة التوزيع والاستخدام في أشكال المصدر والثنائية، مع أو بدون تعديل، بشرط استيفاء الشروط التالية: يجب أن تحتفظ عمليات إعادة التوزيع للكود المصدري بإشعار حقوق الطبع والنشر أعلاه، وهذه القائمة من الشروط وإخلاء المسؤولية التالي. يجب أن تعيد عمليات إعادة التوزيع في الشكل الثنائي إنتاج إشعار حقوق الطبع والنشر أعلاه، وهذه القائمة من الشروط وإخلاء المسؤولية التالي في الوثائق و/أو المواد الأخرى المقدمة مع التوزيع.
يتم توفير هذا البرنامج من قبل أصحاب الحقوق والمساهمين "كما هو" وأي ضمانات صريحة أو ضمنية، بما في ذلك، على سبيل المثال لا الحصر، الضمانات الضمنية للتسويق والملاءمة لغرض معين، مرفوضة. لا يكون أصحاب الحقوق أو المساهمون مسؤولين في أي حال من الأحوال عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو نموذجية أو تبعية (بما في ذلك، على سبيل المثال لا الحصر، توريد السلع أو الخدمات البديلة؛ فقدان الاستخدام أو البيانات أو الأرباح؛ أو انقطاع الأعمال) مهما كانت أسبابها وعلى أي نظرية للمسؤولية، سواء في العقد أو المسؤولية الصارمة أو الضرر (بما في ذلك الإهمال أو غيره) الناشئة بأي شكل من الأشكال عن استخدام هذا البرنامج، حتى لو تم التنبيه إلى احتمال حدوث مثل هذا الضرر.