प्रमाणीकरण टोकन प्राप्ति और प्रतिस्थापन एक्सटेंडर
परिचय
वेब सुरक्षा परीक्षण की दुनिया में, स्वचालन महत्वपूर्ण है, और Burp Suite सबसे पसंदीदा विकल्प है। हालांकि, स्वचालित स्कैनिंग के लिए Burp की शक्ति का सही उपयोग करने के लिए आपको सही प्लगइन्स की आवश्यकता होती है। यहीं पर ATOR आता है। यह ओपन-सोर्स Burp प्लगइन विभिन्न परिदृश्यों के लिए टोकन प्रबंधन और प्रतिस्थापन को सरल बनाकर आपकी स्कैनिंग क्षमताओं में क्रांतिकारी बदलाव लाने के लिए डिज़ाइन किया गया है, जिनमें शामिल हैं:
- एक्सेस और रिफ्रेश टोकन प्रबंधन
- XML और JSON अनुरोध निकायों में टोकन प्रतिस्थापन
- URL और कुकीज़ में टोकन प्रतिस्थापन
परंपरागत रूप से, इन कार्यों को पूरा करने के लिए जटिल मैक्रोज़, सत्र नियम या कस्टम एक्सटेंडर्स की आवश्यकता होती थी, खासकर जब JSON या XML डेटा से निपटना होता था। हमारा प्लगइन इस प्रक्रिया को सरल बनाता है, जो कई महत्वपूर्ण लाभ प्रदान करता है:
मुख्य लाभ:
- मेमोरी में टोकन प्रतिस्थापन: मेमोरी में टोकन को सहजता से बदलकर डुप्लिकेट लॉगिन अनुरोधों को समाप्त करें, स्कैन दक्षता बढ़ाएँ।
- उपयोगकर्ता-अनुकूल UX: रेगुलर एक्सप्रेशन का उपयोग करके प्रतिक्रिया संदेशों से डेटा आसानी से निकालें और अनुरोधों में बदलें। यह लचीलापन JSON, XML, फ़ॉर्म डेटा और अधिक शामिल विविध परिदृश्यों के लिए अमूल्य है।
- बेहतर स्कैन गति: अनावश्यक लॉगिन अनुरोधों से बचकर तेज़ स्कैन गति प्राप्त करें। प्लगइन त्रुटि स्थितियों की पहचान करने के लिए "ट्रिगर अनुरोध" तंत्र का उपयोग करता है, जैसे कि 401 का प्रतिक्रिया कोड जिसमें "अनधिकृत अनुरोध" वाला मुख्य भाग हो।
प्लगइन की प्रेरणा ExtendedMacro प्लगइन से है: https://github.com/FrUh/ExtendedMacro
आरंभ करना
इस प्लगइन का उपयोग करने के लिए, इन चरणों का पालन करें:
- Java और Maven स्थापित करें।
- इस रिपॉजिटरी को क्लोन करें।
- क्लोन की गई रिपॉजिटरी की निर्देशिका में जहाँ pom.xml स्थित है, "mvn clean install" कमांड चलाएँ।
- "target" फ़ोल्डर से निर्भरताओं के साथ उत्पन्न JAR फ़ाइल प्राप्त करें।
आवश्यक शर्तें
प्लगइन का उपयोग करने से पहले, सुनिश्चित करें:
- सुनिश्चित करें कि आपकी मशीन में java वातावरण सेटअप है।
- Burp Suite को प्रॉक्सी ट्रैफ़िक सुनने के लिए कॉन्फ़िगर करें।
- BURP के एक्सटेंडर टैब से java वातावरण कॉन्फ़िगर करें।
परीक्षण एप्लिकेशन के साथ उपयोग के लिए (इस परीक्षण एप्लिकेशन (Tiredful एप्लिकेशन) को https://github.com/payatu/Tiredful-API से स्थापित करें)
चरण
- उस अनुरोध की पहचान करें जो त्रुटि प्रदान करता है।
- त्रुटि पैटर्न की पहचान करें (नीचे अनुभाग में विवरण)।
- रेगेक्स का उपयोग करके प्रतिक्रिया से डेटा प्राप्त करें (नमूना रेगेक्स मान देखें)।
- इस डेटा को अनुरोध पर बदलें (चरण 3 के समान रेगेक्स का उपयोग करें, साथ ही वेरिएबल नाम)।
त्रुटि पैटर्न:
कुल मिलाकर आप त्रुटि स्थिति निर्दिष्ट करने के 4 अलग-अलग तरीके हैं:
- स्थिति कोड: 401, 400
- मुख्य भाग में त्रुटि: मुख्य भाग सामग्री से कोई भी टेक्स्ट दें (उदाहरण: एक्सेस टोकन समाप्त हो गया)
- हेडर में त्रुटि: हेडर से कोई भी टेक्स्ट दें (उदाहरण: अनधिकृत)
- मुक्त रूप: एकाधिक स्थिति देने के लिए इसका उपयोग करें (st=400 && bd=एक्सेस टोकन समाप्त हो गया || hd=अनधिकृत)
अंत से अंत तक परीक्षणों का विवरण
- अमान्य अनुरोध ढूँढना:
- अमान्य Bearer टोकन के साथ http://HOST:PORT/api/v1/exams/MQ==/
- त्रुटि पैटर्न की पहचान करना:
- उपरोक्त अनुरोध आपको 401 देगा, यहाँ त्रुटि स्थिति स्थिति कोड = 401 है
- अनुरोध डेटा से मिलान रेगेक्स
- Authorization: Bearer \w* - यह रेगेक्स पास किए गए एक्सेस टोकन से मेल खाएगा।
- प्रतिस्थापन - कैसे बदलें
- मेल किए गए टेक्स्ट (चरण 3 रेगेक्स) को निकाले गए मान से बदलें (निष्कर्षण कॉन्फ़िगरेशन नीचे चर्चा की गई है, मान लें वेरिएबल नाम "token" है)
- Authorization: Bearer token - निकाला गया टोकन बदल दिया जाएगा।
परीक्षण एप्लिकेशन के साथ उपयोग
विचार: BURP में Tiredful एप्लिकेशन अनुरोध रिकॉर्ड करें, ATOR एक्सटेंडर कॉन्फ़िगर करें, जाँचें कि टोकन ATOR द्वारा बदला गया है या नहीं।
- ब्राउज़र में परीक्षण एप्लिकेशन खोलें जिसे आपने BURP के साथ कॉन्फ़िगर किया है
- http://HOST:PORT/handle-user-token/ से एक टोकन जनरेट करें
- ऊपर दिए गए चरण से Authorization Bearer टोकन पास करके http://HOST:PORT/api/v1/exams/MQ==/ अनुरोध भेजें
- ATOR जार फ़ाइल को BURP में एक एक्सटेंडर के रूप में जोड़ें
- प्रॉक्सी इतिहास में अनुरोध(/handle-user-token) पर राइट-क्लिक करें और इसे Authentication Token Obtain और Replace Extender पर भेजें
- "access_token" मान चुनकर और नाम "token" देकर (यह कोई भी नाम हो सकता है) निष्कर्षण कॉन्फ़िगरेशन में नई प्रविष्टि जोड़ें
नोट: इस एप्लिकेशन के लिए, टोकन जनरेट करने के लिए एक अनुरोध पर्याप्त है। टोकन कई अनुरोधों के बाद भी उत्पन्न हो सकता है।
- ट्रिगर स्थिति:
- यदि स्थिति मेल खाती है तो मैक्रो चरण निष्पादित होंगे।
- चरणों के निष्पादन के बाद, यदि निर्दिष्ट किया गया है तो "पैटर्न" और "प्रतिस्थापन क्षेत्र" से मान लेकर इनकमिंग अनुरोध को बदलें।
- हमारे परीक्षण के लिए,
- त्रुटि स्थिति 401 (स्थिति कोड) है
- पैटर्न "Authorization: Bearer \w*" है (निकालने के मानों से कैसे बदलना है, रेगेक्स पैटर्न निर्दिष्ट करें)
- प्रतिस्थापन क्षेत्र "Authentication: Bearer <NAME which you gave in STEP 4>" है
- "जोड़ें" बटन पर क्लिक करें।
- इस उदाहरण के लिए, इनकमिंग अनुरोध को मान्य बनाने के लिए एक प्रतिस्थापन पर्याप्त है, लेकिन आप एक ही स्थिति के लिए कई प्रतिस्थापन जोड़ सकते हैं।
- Repeater से अमान्य अनुरोध भेजें और FLOW/Logger++ में req/res प्रवाह जाँचें
- Repeater से अमान्य Bearer टोकन (http://HOST:PORT/api/v1/exams/MQ==/) प्रतिक्रिया को 401 बनाता है।
- एक्सटेंडर इस स्थिति से मेल खाएगा और रिकॉर्ड किए गए चरणों को चलाना शुरू करेगा, "access_token" निकालेगा
- वास्तविक प्रतिक्रिया (Repeater से) में एक्सेस टोकन (चरण ii से) बदलें और इस अमान्य अनुरोध को मान्य बनाएँ।
- Repeater कंसोल में, आप 200 OK प्रतिक्रिया देखेंगे।
- चरण 7 फिर से करें और प्रवाह जाँचें
- इस बार एक्सटेंडर चरणों को आमंत्रित नहीं करेगा क्योंकि मौजूदा टोकन मान्य है, इसलिए वह उसी का उपयोग करेगा।
साथ निर्मित
- SWING - पैनल जोड़ने के लिए उपयोग किया गया
योगदान
हमारे आचार संहिता और पुल अनुरोध सबमिट करने की प्रक्रिया के विवरण के लिए कृपया CONTRIBUTING.md पढ़ें।
संस्करण
v2.3.0
लेखक
Synopsys
लाइसेंस
यह सॉफ्टवेयर Synopsys द्वारा MIT लाइसेंस के तहत जारी किया गया है।
आभार
- https://github.com/FrUh/ExtendedMacro
ExtendedMacro एक बढ़िया शुरुआत थी - हमने अधिक जटिल परिदृश्यों को संभालने के लिए UI को संशोधित किया है। हमने बग भी ठीक किए हैं और मेमोरी में टोकन बदलकर गति में सुधार किया है।