एक Burp Suite एक्सटेंशन जो पूर्ण Montoya API को एक स्थानीय REST API के रूप में उजागर करता है, Swagger UI के साथ
reburp, Burp Suite को ऐसी चीज़ में बदल देता है जिसे आप स्क्रिप्ट कर सकते हैं। यह एक Java एक्सटेंशन के रूप में लोड होता है और
Montoya API
को http://127.0.0.1:9090 पर एक HTTP REST API के माध्यम से सर्व करता है, साथ में एक OpenAPI स्पेक और Swagger UI भी। Burp में आप जो कुछ भी क्लिक करते हैं - प्रॉक्सी हिस्ट्री पढ़ना, रिक्वेस्ट भेजना, स्कोप संपादित करना, स्कैन चलाना, टोकन डिकोड करना - वह सब एक JSON कॉल बन जाता है जिसे कोई एजेंट या curl लाइन बना सकती है।
यह burp-interaction एजेंट स्किल के साथ मिलकर काम करता है ताकि एक AI
असिस्टेंट सीधे Burp को चला सके।
Burp की वे सुविधाएँ जिन्हें आपका एजेंट अब REST के माध्यम से चला सकता है:
Releases से नवीनतम reburp-*.jar प्राप्त करें, या
इसे सोर्स से बनाएँ (Java 17+ आवश्यक है)।
प्रत्येक reburp रिलीज़ एक न्यूनतम Burp Suite (Montoya) वर्ज़न के विरुद्ध बनाई जाती है। पुराने Burp पर, Releases से मेल खाता jar प्राप्त करें।
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 से डाउनलोड किया)Burp में एक reburp टैब दिखाई देता है जो हर REST कॉल को होते समय दिखाता है।
प्रत्येक पंक्ति एक REST कॉल है। उसे चुनने पर API रिक्वेस्ट और रिस्पॉन्स दिखता है, साथ ही वह रिक्वेस्ट और रिस्पॉन्स भी जो reburp ने आपकी ओर से टारगेट को भेजा।
लोड होने के बाद, अपने ब्राउज़र में खोलें:
स्पेक, रिक्वेस्ट और रिस्पॉन्स शेप्स के लिए सत्य का स्रोत है।
| समूह | प्रीफ़िक्स | मुख्य बातें |
|---|---|---|
| Status | /api/status | एक्सटेंशन जानकारी, Burp वर्ज़न |
| Proxy | /api/proxy/ | हिस्ट्री, सर्च, एनोटेट, इंटरसेप्ट टॉगल, WebSocket हिस्ट्री |
| Site Map | /api/sitemap/ | लिस्ट, सर्च |
| Scope | /api/scope/ | स्कोप में URL जाँचें, स्कोप रूल्स जोड़ें/हटाएँ |
| HTTP | /api/http/ | HTTP/1.1 और HTTP/2 भेजें, auth-token इंजेक्शन, parse, diff, params, reflection, insertion points, cookies |
| Messages | /api/http/message/ | रिक्वेस्ट और रिस्पॉन्स का निरीक्षण और पुनर्लेखन: headers, parameters, markers, MIME types, timing |
| Scanner | /api/scanner/ | इश्यू, ऑडिट/क्रॉल शुरू करें, टास्क स्टेटस (केवल Pro) |
| Collaborator | /api/collaborator/ | पेलोड जनरेट करें, इंटरैक्शन पोल करें (केवल Pro) |
| Repeater / Intruder | /api/repeater/, /api/intruder/ | Repeater और Intruder को रिक्वेस्ट भेजें |
| Request Engine | /api/http/engine/ | हाई-थ्रूपुट async रिक्वेस्ट इंजन: resource pools, concurrency limit, throttle, retries, live stats, pause/resume/cancel, results (Burp 2026.x) |
| Config | /api/config/ | प्रोजेक्ट और यूज़र ऑप्शन प्राप्त/सेट करें, टास्क इंजन स्टेट |
| Match & Replace | /api/proxy/match-replace/ | प्रॉक्सी match-and-replace रूल्स की लिस्ट, जोड़ें, हटाएँ |
| Sessions | /api/sessions/ | session-handling रूल्स की लिस्ट और डिलीट (Burp में add-header एक्शन नहीं है) |
| Engagement | /api/engagement/ | CSRF PoC जनरेटर, कंटेंट डिस्कवरी, रेफ़रेंस ढूँढें, decoder पर भेजें |
| Bambda | /api/bambda/ | Bambda स्क्रिप्ट इम्पोर्ट करें, फ़िल्टर चेन जनरेट करें |
| Organizer | /api/organizer/ | आइटम की लिस्ट, Organizer को रिक्वेस्ट भेजें |
# 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 से बाहर एक्सपोज़ न करें।
इसी कारण, OS कमांड निष्पादन डिफ़ॉल्ट रूप से बंद है। /api/utils/shell/execute और
/api/utils/shell/execute-raw 403 लौटाते हैं जब तक कि एक्सटेंशन Burp के अपने प्रोसेस
एनवायरनमेंट में यह न देखे:
REBURP_ENABLE_SHELL=1
इसे सेट करने पर, कोई भी origin जो पोर्ट तक पहुँच सकता है, होस्ट पर remote code execution प्राप्त कर लेता है। इसे केवल तभी सक्षम करें जब आप इसे स्वीकार करते हों। प्रत्येक इनवोकेशन एक्सटेंशन output टैब में लिखा जाता है।
GET /api/utils/shell/status बताता है कि यह चालू है या नहीं और इसे कभी सक्षम होने की आवश्यकता नहीं होती।
"पूर्ण Montoya API" का दावा tools/api_coverage.py द्वारा यांत्रिक रूप से सत्यापित किया जाता है,
जिसे CI build workflow हर पुश पर चलाता है और यदि कोई मैप करने योग्य
मेथड अनएक्सपोज़्ड छूट जाए तो विफल हो जाता है। व्यवहार का परीक्षण अलग से tools/smoke_test.py द्वारा लोडेड एक्सटेंशन के विरुद्ध किया जाता है।
9090 पर हार्डकोडेड है। यदि आवश्यक हो तो BurpRestApiExtension.kt में port बदलें और रीबिल्ड करें।compileOnly है - यह बंडल नहीं है; Burp इसे रनटाइम पर प्रदान करता है।{ "error": "..." } लौटाते हैं।OpenApiSpec.kt और docs/ में फ़्रैगमेंट्स से इकट्ठा किया जाता है। एक रूट
ग्रुप जोड़ने के लिए, एक *Paths() और *Schemas() फ़्रैगमेंट लिखें और इसे docs/OpenApiSpecExtra.kt में सूचीबद्ध करें।Issues और pull requests का स्वागत है। कृपया PR खोलने से पहले python3 tools/api_coverage.py और
./gradlew shadowJar चलाएँ। नए रूट ग्रुप्स को अपने OpenAPI फ़्रैगमेंट के साथ आना चाहिए
ताकि डॉक्स पूर्ण बने रहें।
| Issues | /api/issues/ | कस्टम ऑडिट इश्यू बनाएँ |
| Events | /api/events/ | पैसिव ट्रैफ़िक ऑब्ज़र्वर चालू/बंद करें, फिर कैप्चर किए गए इवेंट पढ़ें |
| Extension Data | /api/extension-data/ | Burp प्रोजेक्ट फ़ाइल में रखा टाइप्ड key/value स्टोरेज |
| Preferences | /api/preferences/ | टाइप के अनुसार पर्सिस्टेड एक्सटेंशन प्रेफ़रेंस |
| Logging | /api/logging/ | एक्सटेंशन output और error टैब तथा Burp के इवेंट लॉग में लिखें |
| Activity Log | /api/log/ | reburp के अपने पर्सिस्टेड कॉल लॉग को क्वेरी करें |
| AI | /api/ai/ | Burp AI स्टेटस और चैट (जहाँ उपलब्ध हो) |
| Meta | /api/meta/ | Burp वर्ज़न कंपोनेंट्स, एक्सटेंशन लोड जानकारी, enum vocabularies |
| Utilities | /api/utils/ | URL encode/decode, base64, hash, JWT decode, random string, decompress |
| Numbers | /api/utils/number/ | binary, octal, decimal, hex और मनमाने radixes के बीच कन्वर्ट करें |
| JSON | /api/utils/json/ | validate करें, pointer से पढ़ें और संपादित करें, स्ट्रक्चर का निरीक्षण करें, normalise करें |
| Bytes | /api/utils/bytes/ | byte buffers को सर्च, slice, append, allocate और inspect करें |
| Ranking | /api/utils/rank | प्रॉक्सी हिस्ट्री को इस आधार पर रैंक करें कि प्रत्येक एक्सचेंज कितना असामान्य दिखता है |
| Shell | /api/utils/shell/ | OS कमांड निष्पादन। डिफ़ॉल्ट रूप से अक्षम, देखें सुरक्षा |