
प्राधिकरण मुद्दों के परीक्षण के लिए Burp एक्सटेंशन। स्वचालित अनुरोध दोहराना और तुरंत पैरामीटर मान निष्कर्षण।
यह Burp एक्सटेंशन आपको प्राधिकरण बग्स खोजने में मदद करता है। बस वेब एप्लिकेशन में उच्च विशेषाधिकार प्राप्त उपयोगकर्ता के साथ नेविगेट करें और Auth Analyzer को अपने अनुरोधों को किसी भी परिभाषित गैर-विशेषाधिकार प्राप्त उपयोगकर्ता के लिए दोहराने दें। पैरामीटर को परिभाषित करने की क्षमता के साथ, Auth Analyzer स्वचालित रूप से पैरामीटर मान निकालने और बदलने में सक्षम है। इसके साथ, उदाहरण के लिए, CSRF टोकन या संपूर्ण सत्र विशेषताओं को प्रतिक्रियाओं से स्वचालित रूप से निकाला जा सकता है और आगे के अनुरोधों में बदला जा सकता है। प्रत्येक प्रतिक्रिया का विश्लेषण किया जाएगा और इसकी बाइपास स्थिति पर टैग किया जाएगा।
अन्य मौजूदा Burp एक्सटेंशन भी हैं जो मूल रूप से समान काम करते हैं। हालाँकि, पैरामीटर सुविधा और स्वचालित मान निष्कर्षण की शक्ति Auth Analyzer को चुनने का मुख्य कारण है। इसके साथ, आपको उस डेटा की सामग्री जानने की आवश्यकता नहीं है जिसे आदान-प्रदान किया जाना चाहिए। आप आसानी से अपने पैरामीटर और कुकीज़ परिभाषित कर सकते हैं और Auth Analyzer आवश्यक मानों को तुरंत पकड़ लेगा। Auth Analyzer कोई प्रीफ्लाइट अनुरोध नहीं करता है। यह मूल रूप से वही काम करता है जो आपका वेब ऐप करता है। आपके द्वारा परिभाषित उपयोगकर्ता भूमिकाओं / सत्रों के साथ।
(1) प्रत्येक उपयोगकर्ता के लिए जिसे आप परीक्षण करना चाहते हैं, एक सत्र बनाएँ या क्लोन करें।
(2) सत्र सेटअप सहेजें और लोड करें
(3) सत्र विशेषताओं को निर्दिष्ट करें (बदलने के लिए हेडर और/या पैरामीटर)
(4) यदि आवश्यक हो तो फ़िल्टर सेट करें
(5) Auth Analyzer प्रारंभ / बंद और रोकें
(6) तालिका फ़िल्टर निर्दिष्ट करें
(7) किसी अन्य उपयोगकर्ता के साथ वेब ऐप में नेविगेट करें और दोहराए गए अनुरोधों के परिणाम ट्रैक करें
(8) तालिका डेटा को XML या HTML में निर्यात करें
(9) मूल और दोहराए गए अनुरोधों / प्रतिक्रियाओं का मैन्युअल रूप से विश्लेषण करें

यदि आपके पास अपने साइटमैप में परीक्षण करने के लिए संसाधन हैं, तो अपने प्राधिकरण परीक्षण करना बहुत आसान और त्वरित है। पहले चरण में, उन सत्रों को परिभाषित करें जिनका आप परीक्षण करना चाहते हैं। फिर अपना साइटमैप विस्तृत करें, संसाधनों का चयन करें और संदर्भ मेनू के माध्यम से अनुरोधों को दोहराएं। इसके अतिरिक्त, आप कुछ विकल्प परिभाषित कर सकते हैं कि कौन से अनुरोध दोहराए जाने चाहिए और कौन से नहीं। इसके साथ, आप कुछ ही सेकंड में एक जटिल वेबसाइट के प्राधिकरण परीक्षण कर सकते हैं।
Auth Analyzer में पैरामीटर को परिभाषित करने की संभावना है जो दिए गए सत्र के लिए अनुरोध दोहराए जाने से पहले बदल दिए जाते हैं। दिए गए पैरामीटर का मान विभिन्न आवश्यकताओं के अनुसार सेट किया जा सकता है।
पैरामीटर मान निकाला जाएगा यदि यह निम्नलिखित में से किसी एक बाधा के साथ प्रतिक्रिया में होता है:
एक Set-Cookie हेडर वाली प्रतिक्रिया जिसमें कुकी का नाम परिभाषित Extract Field Name के बराबर हो
एक HTML दस्तावेज़ प्रतिक्रिया में एक इनपुट फ़ील्ड होता है जिसका name विशेषता परिभाषित Extract Field Name के बराबर हो
एक JSON प्रतिक्रिया में एक कुंजी होती है जो Extract Field Name के बराबर हो
डिफ़ॉल्ट रूप से, Auth Analyzer सभी स्थानों से पैरामीटर मान को स्वचालित रूप से निकालने का प्रयास करता है। हालाँकि, पैरामीटर सेटिंग्स आइकन पर क्लिक करने से आप अपनी आवश्यकताओं के अनुसार स्वचालित निष्कर्षण स्थान को प्रतिबंधित कर सकते हैं।

पैरामीटर निकाला जाएगा यदि प्रतिक्रिया में निर्दिष्ट From String और To String एक पंक्ति में हों। From-To String को मैन्युअल रूप से या सीधे संबंधित संदर्भ मेनू द्वारा सेट किया जा सकता है। किसी भी प्रतिक्रिया में उस शब्द को चिह्नित करें जिसे आप निकालना चाहते हैं और अपनी पसंद के पैरामीटर के लिए From-To Extract के रूप में सेट करें।
डिफ़ॉल्ट रूप से, Auth Analyzer अधिकांश पाठ्य प्रतिक्रियाओं में हेडर और बॉडी से मान निकालने का प्रयास करता है। हालाँकि, पैरामीटर सेटिंग्स आइकन पर क्लिक करने से आप अपनी आवश्यकताओं के अनुसार From-To निष्कर्षण स्थान को प्रतिबंधित कर सकते हैं।

एक स्थिर पैरामीटर मान परिभाषित किया जा सकता है। इसका उपयोग उदाहरण के लिए स्थिर CSRF टोकन या लॉगिन क्रेडेंशियल्स के लिए किया जा सकता है।
यदि परिभाषित पैरामीटर किसी अनुरोध में मौजूद है, तो आपको इनपुट के लिए संकेत दिया जाएगा। इसका उपयोग उदाहरण के लिए 2FA कोड सेट करने के लिए किया जा सकता है।
यदि कोई मान सेट (निकाला गया या उपयोगकर्ता द्वारा परिभाषित) है, तो इसे बदल दिया जाएगा यदि संबंधित पैरामीटर किसी अनुरोध में मौजूद है। पैरामीटर प्रतिस्थापन की शर्तें हैं:
पैरामीटर बदल दिया जाएगा यदि यह निम्नलिखित स्थानों में से किसी एक पर मौजूद है:

पथ में (उदा. /api/user/99/profile --> यदि user नाम का कोई पैरामीटर मौजूद है, तो मान 99 बदल दिया जाएगा)
URL पैरामीटर (उदा. email=hans.wurst[a]gmail.com)
कुकी पैरामीटर (उदा. PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
बॉडी पैरामीटर या तो URL-एन्कोडेड या मल्टीपार्ट फॉर्म डेटा
JSON पैरामीटर (उदा. {"email":"hans.wurst[a]gmail.com"})
डिफ़ॉल्ट रूप से, पैरामीटर मान प्रत्येक स्थान पर बदल दिया जाएगा। हालाँकि, पैरामीटर सेटिंग्स आइकन पर क्लिक करने से आप अपनी आवश्यकताओं के अनुसार स्थान को प्रतिबंधित कर सकते हैं।

परिभाषित पैरामीटर को पूरी तरह से हटाया जा सकता है, उदाहरण के लिए CSRF जाँच तंत्र का परीक्षण करने के लिए।
उपयोगकर्ता नाम और पासवर्ड को स्थिर मान के रूप में परिभाषित करें। सत्र कुकी नाम को स्वचालित निष्कर्षण के रूप में परिभाषित किया जाना चाहिए। सुनिश्चित करें कि आप बिना किसी सत्र कुकी सेट के एप्लिकेशन में नेविगेट करना शुरू करते हैं। वेब ऐप में लॉगिन करें। Auth Analyzer स्थिर पैरामीटर के साथ लॉगिन अनुरोध को दोहराएगा और स्वचालित रूप से Set-Cookie हेडर द्वारा सत्र प्राप्त करेगा। इस कुकी का उपयोग दिए गए सत्र के आगे के अनुरोधों के लिए किया जाएगा। परिभाषित कुकी को एक पैरामीटर के रूप में माना जाएगा और इसलिए कोई कुकी हेडर परिभाषित नहीं किया जाना चाहिए।

संकेत: निष्कर्षण / प्रतिस्थापन चरण में खराबी से बचने के लिए आप एक पैरामीटर के लिए निष्कर्षण और प्रतिस्थापन शर्तों को प्रतिबंधित कर सकते हैं।

एक कुकी हेडर और एक CSRF टोकन (स्वचालित मान निष्कर्षण के साथ) परिभाषित करें। CSRF टोकन मान निकाला जाएगा यदि यह दिए गए सत्र के किसी HTML इनपुट टैग, Set-Cookie हेडर या JSON प्रतिक्रिया में मौजूद है।

चूंकि स्वचालित निष्कर्षण विधि केवल HTML इनपुट फ़ील्ड, JSON ऑब्जेक्ट या Set-Cookie हेडर पर काम करती है, हमें From To String नामक सामान्य निष्कर्षण विधि का उपयोग करना होगा। इस निष्कर्षण विधि के साथ, हम किसी भी मान को एक प्रतिक्रिया से निकाल सकते हैं यदि वह एक अद्वितीय प्रारंभ और अंत स्ट्रिंग के बीच स्थित है। Auth Analyzer स्वचालित रूप से From String और To String सेट करने के लिए एक संदर्भ मेनू विधि प्रदान करता है। बस उस स्ट्रिंग को चिह्नित करें जिसे आप निकालना चाहते हैं और संदर्भ मेनू द्वारा From-To Extract के रूप में सेट करें।

चूंकि प्राधिकरण हेडर को एक पैरामीटर के रूप में नहीं माना जाता है (जैसा कि कुकी हेडर के साथ किया जाता है), हम अपनी इच्छा प्राप्त करने के लिए एक हेडर सम्मिलन बिंदु का उपयोग कर सकते हैं। बस निर्दिष्ट हेडर में उस मान को चिह्नित करें और राइट-क्लिक करें जिसे आप बदलना चाहते हैं। डिफ़ॉल्ट मान का उपयोग तब किया जाएगा जब अभी तक कोई पैरामीटर मान निकाला नहीं गया है।

एक साथ कई भूमिकाओं का परीक्षण करने के लिए उतने ही सत्र बनाएँ जितने आप चाहते हैं।

सत्र स्थिति पैनल पर Renew दबाएँ या संदर्भ मेनू (तालिका प्रविष्टि में माउस राइट क्लिक) द्वारा प्रभावित अनुरोध को दोहराएँ। संकेत: लॉगिन अनुरोध (अनुरोधों) को चिह्नित किया जा सकता है और बाद में फ़िल्टर किया जा सकता है।

स्वतंत्र संचालन (उदा. एक DELETE फ़ंक्शन) के परीक्षण के लिए मूल अनुरोधों को छोड़ा जा सकता है।

यदि किसी अनाम उपयोगकर्ता को एक वैध विशेषता (उदा., एक वैध कुकी मान) की आवश्यकता है, तो आपको हमेशा की तरह हेडर परिभाषित करना होगा। अन्यथा, आप हटाने के लिए एक हेडर को निम्नानुसार परिभाषित कर सकते हैं:

आप आसानी से बड़ी संख्या में एंडपॉइंट्स पर उनकी व्यक्तिगत CORS सेटिंग्स का परीक्षण कर सकते हैं, बदलने के लिए हेडर में एक Origin हेडर जोड़कर और सत्र पैनल पर Test CORS चुनकर। Test CORS चुनने पर, Auth Analyzer अनुरोध दोहराए जाने से पहले HTTP विधि को OPTIONS में बदल देगा।

हटाएँ चेकबॉक्स चुनकर एक निर्दिष्ट पैरामीटर को हटाया जा सकता है। इसका उपयोग उदाहरण के लिए CSRF जाँच तंत्र का परीक्षण करने के लिए किया जा सकता है।

Auth Analyzer दो प्रतिक्रियाओं के बीच अंतर सत्यापित करने के लिए एक अंतर्निहित तुलना दृश्य प्रदान करता है। बस उस संदेश को चिह्नित करें जिसका आप विश्लेषण करना चाहते हैं और संदेश दृश्य (1) बदलें। अब आप दो अनुरोधों की तुलना करने में सक्षम हैं (2) (3)। अंतर्निहित Diff सुविधा दो अनुरोधों के बीच अंतर की गणना करेगी और वास्तविक समय में दिखाएगी (4)

विस्तारित Diff दृश्य:

Auth Analyzer को दो प्रकार के अनुरोधों / प्रतिक्रियाओं को संसाधित करना चाहिए:
प्रतिक्रिया में एक ऐसा मान होता है जिसे निकाला जाना चाहिए
अनुरोधित संसाधन परिभाषित सत्र (सत्रों) द्वारा सुलभ नहीं होना चाहिए
उदाहरण के लिए, हम एक स्थिर JavaScript फ़ाइल को संसाधित नहीं करना चाहते हैं क्योंकि यह सभी के लिए सुलभ है और (उम्मीद है) इसमें कोई संरक्षित डेटा नहीं है। इसे प्राप्त करने के लिए, हम निम्नलिखित प्रकार के फ़िल्टर सेट कर सकते हैं:
दोनों प्रतिक्रियाओं का प्रतिक्रिया निकाय समान हो और समान प्रतिक्रिया कोड होदोनों प्रतिक्रियाओं का प्रतिक्रिया कोड समान हो और दोनों प्रतिक्रियाओं की प्रतिक्रिया निकाय लंबाई +-5% हो