
AuthMatrix एक Burp Suite एक्सटेंशन है जो वेब एप्लिकेशन और वेब सेवाओं में प्राधिकरण का परीक्षण करने का एक सरल तरीका प्रदान करता है।
AuthMatrix Burp Suite के लिए एक एक्सटेंशन है जो वेब एप्लिकेशन और वेब सेवाओं में प्राधिकरण (authorization) का परीक्षण करने का एक सरल तरीका प्रदान करता है। AuthMatrix के साथ, परीक्षक अपने विशिष्ट लक्ष्य एप्लिकेशन के लिए उपयोगकर्ताओं, भूमिकाओं और अनुरोधों की तालिकाओं को पहले से पूरी तरह से परिभाषित करने पर ध्यान केंद्रित करते हैं। ये तालिकाएँ एक अभिगम नियंत्रण मैट्रिक्स (access control matrix) के समान प्रारूप में संरचित होती हैं जो विभिन्न खतरा मॉडलिंग पद्धतियों में सामान्य है।
एक बार जब तालिकाएँ तैयार हो जाती हैं, तो परीक्षक सरल क्लिक-टू-रन इंटरफ़ेस का उपयोग करके सभी भूमिकाओं और अनुरोधों के संयोजनों को शुरू कर सकते हैं। परिणामों को एक आसानी से पढ़ने योग्य, रंग-कोडित इंटरफ़ेस से पुष्टि की जा सकती है जो सिस्टम में पाई गई किसी भी प्राधिकरण कमजोरियों को इंगित करता है। इसके अतिरिक्त, एक्सटेंशन सरल रिग्रेशन परीक्षण के लिए लक्ष्य कॉन्फ़िगरेशन को सहेजने और लोड करने की क्षमता प्रदान करता है।
AuthMatrix को Burp Suite BApp Store के माध्यम से स्थापित किया जा सकता है। Burp Suite के अंदर से, Extender टैब चुनें, BApp Store चुनें, AuthMatrix चुनें, और install पर क्लिक करें।
मैन्युअल स्थापना के लिए, इस रिपॉजिटरी से AuthMatrix.py डाउनलोड करें। फिर Burp Suite के अंदर से, Extender टैब चुनें, Add बटन पर क्लिक करें, Extension type को Python में बदलें, और AuthMatrix python फ़ाइल का चयन करें।
AuthMatrix के लिए Burp Suite को Jython का उपयोग करने के लिए कॉन्फ़िगर करना आवश्यक है। इसके लिए आसान निर्देश निम्नलिखित URL पर स्थित हैं।
https://portswigger.net/burp/help/extender.html#options_pythonenv
संगतता सुनिश्चित करने के लिए Jython संस्करण 2.7.0 या उससे अधिक का उपयोग करना सुनिश्चित करें।
लक्ष्य एप्लिकेशन के भीतर सभी विशेषाधिकार स्तरों के लिए भूमिकाएँ बनाएँ। (सामान्य भूमिकाओं में User, Admin और Anonymous शामिल हो सकते हैं)
इन विभिन्न भूमिकाओं के अनुरूप पर्याप्त उपयोगकर्ता बनाएँ और उन सभी भूमिकाओं के लिए चेकबॉक्स चुनें जिनसे उपयोगकर्ता संबंधित है। केवल एक उपयोगकर्ता वाली 'Single-User' भूमिकाएँ क्रॉस-यूज़र संसाधन परीक्षण में सहायता के लिए स्वचालित रूप से कॉन्फ़िगर की जाएंगी। यदि इनकी आवश्यकता नहीं है, तो Request Table में कॉलम पर राइट-क्लिक करके इन भूमिकाओं को हटाने में संकोच न करें।
Repeater टैब से प्रत्येक उपयोगकर्ता के लिए सत्र टोकन उत्पन्न करें और उन्हें Users Table के प्रासंगिक कॉलम में दर्ज करें। कुकीज़ को Repeater में उपलब्ध राइट क्लिक मेनू के माध्यम से सीधे उपयोगकर्ताओं को भेजा जा सकता है। AuthMatrix तालिका से कुकी स्ट्रिंग को बुद्धिमानी से पार्स करेगा और जहाँ उपयुक्त हो, उन्हें अनुरोधों में प्रतिस्थापित/जोड़ देगा।
NOTE: Cookies फ़ील्ड वैकल्पिक है। यदि लक्ष्य इसके बजाय HTTP हेडर का उपयोग करता है, तो "New Header" बटन पर क्लिक करके इन्हें जोड़ा जा सकता है।
अधिक उन्नत कॉन्फ़िगरेशन के लिए, जिसमें क्रेडेंशियल्स का स्वचालित रिफ्रेशिंग शामिल है, नीचे "Chains for Authenticating Users" उदाहरण देखें।
Burp Suite के किसी अन्य क्षेत्र (जैसे Target टैब, Repeater टैब, आदि) से एक अनुरोध पर राइट क्लिक करें और "Send to AuthMatrix" चुनें।
AuthMatrix के Request Table में, उन सभी भूमिकाओं के लिए चेकबॉक्स चुनें जो प्रत्येक HTTP अनुरोध करने के लिए अधिकृत हैं।
यह निर्धारित करने के लिए कि कार्रवाई सफल हुई है या नहीं, अनुरोध के अपेक्षित प्रतिक्रिया व्यवहार के आधार पर एक Response Regex को अनुकूलित करें।
सामान्य regex में HTTP Response हेडर, बॉडी के भीतर सफलता संदेश, या पृष्ठ के बॉडी के भीतर अन्य विविधताएँ शामिल हैं।
NOTE: राइट-क्लिक मेनू के माध्यम से अनुरोधों को Failure Regex का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है (अर्थात प्रमाणित उपयोगकर्ताओं को कभी HTTP 303 प्राप्त नहीं करना चाहिए)
सभी अनुरोध चलाने के लिए नीचे Run पर क्लिक करें या कई अनुरोधों पर राइट क्लिक करें और run चुनें। ध्यान दें कि आसन्न तालिका रंग-कोडित परिणाम दिखाएगी।
हरा रंग कोई कमजोरी नहीं पाए जाने को इंगित करता है
लाल रंग इंगित करता है कि अनुरोध में कोई कमजोरी हो सकती है
नीला रंग इंगित करता है कि परिणाम एक गलत सकारात्मक (false positive) हो सकता है। (इसका आम तौर पर अर्थ है कि कोई अमान्य/समाप्त सत्र टोकन या गलत regex है)


चेन अनुरोध के बॉडी में एक स्थिर या गतिशील मान कॉपी करने का एक तरीका प्रदान करते हैं। ये मान पहले चलाए गए अनुरोध की प्रतिक्रिया से (regex का उपयोग करके) या उपयोगकर्ता-विशिष्ट स्थिर स्ट्रिंग मान निर्दिष्ट करके प्राप्त किए जा सकते हैं।
चेन के सबसे सामान्य उपयोग के मामले हैं:
वैध CSRF टोकन के साथ अनुरोधों को भरना
नवनिर्मित IDs/GUIDs का क्रॉस-यूज़र प्राधिकरण समस्याओं के लिए परीक्षण
प्रमाणीकरण और सत्र रिफ्रेशिंग को स्वचालित करना
एक चेन प्रविष्टि में निम्नलिखित मान होते हैं:
चेन नाम: एक वर्णनात्मक नाम
स्रोत: User Table में परिभाषित एक स्थिर उपयोगकर्ता स्ट्रिंग या Request Table में स्रोत अनुरोध का ID
निष्कर्षण Regex: स्रोत अनुरोध की प्रतिक्रिया से मान निकालने के लिए उपयोग किया जाने वाला regex। यह फ़ील्ड केवल तब उपयोग किया जाता है जब पिछले फ़ील्ड में एक अनुरोध निर्दिष्ट किया गया हो। यदि उपयोग किया जाता है, तो इसमें एक कोष्ठक समूह होना चाहिए जिसे निकाला जाना है [अर्थात (.*)]
गंतव्य: Request IDs की एक सूची जिसमें स्रोत मान प्रतिस्थापित किया जाएगा।
प्रतिस्थापन Regex: यह निर्धारित करने के लिए उपयोग किया जाने वाला regex कि स्रोत मान कहाँ डाला जाना है। इसमें प्रतिस्थापित करने के लिए एक कोष्ठक समूह होना चाहिए [अर्थात (.*)]
मान कहाँ से उपयोग करें: यह निर्दिष्ट करें कि क्या एक चयनित उपयोगकर्ता से प्राप्त स्रोत मान का उपयोग करना है (क्रॉस-यूज़र संसाधन परीक्षणों के लिए उपयोगी) या सभी उपयोगकर्ताओं से मानों का उपयोग करना है और उन्हें उनके संबंधित उपयोगकर्ता के गंतव्य अनुरोधों में रखना है (CSRF टोकन पुनर्प्राप्ति जैसे स्वचालन कार्यों के लिए उपयोगी)
NOTE: अनुरोध पंक्ति के क्रम में चलाए जाते हैं, हालांकि, यदि कोई श्रृंखला निर्भरता का पता चलता है, तो AuthMatrix अनुरोधों को आवश्यक क्रम में चलाएगा।



कुछ लक्ष्यों के लिए, AuthMatrix को यह पता लगाने के लिए कॉन्फ़िगर करना आसान हो सकता है कि अनुरोध कब विफल हुआ है। उदाहरण के लिए, यदि कोई लक्ष्य साइट सफल अनुरोधों पर अद्वितीय डेटा लौटाती है, लेकिन जब कोई अनधिकृत कार्रवाई की जाती है तो हमेशा HTTP 303 लौटाती है।
इस मोड में, AuthMatrix सफल भूमिका का हिस्सा नहीं होने वाले सभी उपयोगकर्ताओं के लिए इस regex को मान्य करेगा।
ऐसा करने के लिए, अनुरोध पर राइट क्लिक करें और "Toggle Regex Mode" चुनें। regex फ़ील्ड बैंगनी रंग में हाइलाइट हो जाएगा जो दर्शाता है कि AuthMatrix अनुरोध को Failure Regex Mode में चलाएगा।
NOTE: Failure Regex Mode में गलत सकारात्मक का पता लगाना और हाइलाइट करना काम नहीं कर सकता है

स्थिति फ़ाइलों की संरचना के विवरण के लिए JsonState दस्तावेज़ देखें