
रिफ्लेक्टेड क्वेरी पैरामीटर्स के लिए अलर्ट दिखाने, वर्तमान पथ के लिए वेबैक आर्काइव लिंक दिखाने, छिपे हुए तत्वों को दिखाने और अक्षम तत्वों को सक्षम करने के लिए एक Chrome/Firefox ब्राउज़र एक्सटेंशन।
यह एक Chrome/Firefox एक्सटेंशन है जो निम्नलिखित कर सकता है:
'," और < बिना एन्कोड किए रिफ्लेक्ट होते हैं।Xnl Reveal टैब में लिखें।Xnl Reveal टैब में)।रिफ्लेक्ट हुए पैरामीटरों के लिए अलर्ट दिखाने की क्षमता @renniepak की टिप्पणी से प्रेरित थी, जो Critical Thinking - Bug Bounty Podcast के एपिसोड 42 में दी गई थी, जहाँ उन्होंने बताया था कि उनके पास अपना खुद का ब्राउज़र एक्सटेंशन था जो उन्हें किसी भी रिफ्लेक्शन के बारे में सूचित करता था।
मिले हुए रिफ्लेक्ट पैरामीटरों की संख्या एक्सटेंशन आइकन पर हरे बैज द्वारा दिखाई जाती है। हालाँकि, यदि रिफ्लेक्ट हुए पैरामीटर नामों में से कोई भी "sus" पैरामीटर अनुसंधान @Jhaddix और @G0LDEN_infosec द्वारा में वर्णित श्रेणियों में है, तो बैज लाल हो जाएगा। यदि कोई "sus" पैरामीटर हैं, तो श्रेणियाँ भी DevTools Xnl Reveal टैब, अलर्ट बॉक्स और क्लिपबोर्ड पर आउटपुट में दिखाई जाएँगी, जैसे boringParameter, query [XSS], path [LFI/RFI | SSRF | XSS] (यह मेरे GAP Burp Extension में "sus" पैरामीटर पहचान के समान है)।
छिपे हुए तत्वों को दिखाने और अक्षम तत्वों को सक्षम करने की क्षमता Critical Thinking - Bug Bounty Podcast द्वारा किए गए इस Tweet से प्रेरित थी और मैंने इसे शुरुआत में ब्राउज़र बुकमार्क के रूप में बनाया था।
एक्सटेंशन आइकन सामान्यतः काले बैकग्राउंड के साथ दिखाया जाता है
, लेकिन यदि आइकन लाल बैकग्राउंड के साथ दिखाई देता है
, तो यह संकेत देता है कि Wayback CDX Server API संभवतः अनुपलब्ध है। भले ही मुख्य सुविधाएँ अक्षम हों, एक्सटेंशन हर 10 मिनट में API की स्थिति की जाँच करेगा।
महत्वपूर्ण: जब आप Wayback archive से URLs प्राप्त करने के लिए waymore, waybackurls या gau जैसे टूल का उपयोग करते हैं, तो यह CDX Server API का उपयोग करता है। यदि API डाउन है, तो आपको Wayback Machine से कोई डेटा नहीं मिलेगा, केवल अन्य स्रोतों से मिलेगा। साथ ही, केवल waymore ही आपको बताएगा कि कोई समस्या थी।
इस रिपॉजिटरी को अपनी मशीन पर क्लोन करें और फिर नीचे दिए गए निर्देशों का पालन करें, यह इस बात पर निर्भर करता है कि आप Chrome या Firefox ब्राउज़र पर इंस्टॉल करना चाहते हैं:
Chrome में एक्सटेंशन मैनेजर खोलने के लिए निम्न का पालन करें: कबाब मेनू (तीन लंबवत बिंदु) -> एक्सटेंशन -> एक्सटेंशन प्रबंधित करें
यदि डेवलपर मोड चालू नहीं है, तो ऊपर दाईं ओर के टॉगल पर क्लिक करके इसे चालू करें।
अब ऊपर बाईं ओर Load unpacked बटन पर क्लिक करें।
उस निर्देशिका पर जाएँ जहाँ आपके पास Xnl Reveal फ़ोल्डर है और उसे चुनें।
एक्सटेंशन अब लोड हो गया है। आप टूलबार में एक्सटेंशन आइकन पर क्लिक कर सकते हैं, और फिर Xnl Reveal को अपने टूलबार पर पिन करने के लिए पिन आइकन पर क्लिक करें।
महत्वपूर्ण: Firefox एक्सटेंशन के साथ, आपको हर बार Firefox खोलने पर इसे लोड करना होगा। दुर्भाग्य से, इसे रोकने के लिए मैं इसे Firefox स्टोर में नहीं जोड़ सकता, क्योंकि ऐसा करने के लिए Manifest v3 आवश्यक है। Xnl Reveal को Manifest v2 का उपयोग करना पड़ता है (जब तक कि कोई और इसे समझ न ले, क्योंकि मैं नहीं समझ सका) जिसमें कम सुरक्षा प्रतिबंध हैं जिससे यह काम कर पाता है।
एक नए ब्राउज़र टैब में about:debugging पर जाएँ।
पेज के बाईं ओर This Firefox शीर्षक पर क्लिक करें।
Temporary Extensions शीर्षक के अंतर्गत Load Temporary Add-on... बटन पर क्लिक करें।
डाउनलोड की गई रिपॉजिटरी से Firefox फ़ोल्डर पर जाएँ और कोई भी फ़ाइल चुनें, फिर Open पर क्लिक करें।
एक्सटेंशन अब लोड हो गया है। आप टूलबार में एक्सटेंशन आइकन पर क्लिक कर सकते हैं, फिर सेटिंग्स कॉग आइकन पर क्लिक करें, और Pin to Toolbar चुनें।
Xnl Reveal लोगो पर राइट क्लिक करते हैं और Options चुनते हैं, तो आपको Options पेज पर ले जाया जाएगा।Xnl Reveal लोगो पर राइट क्लिक करते हैं और Manage Extension चुनते हैं, फिर Options पेज देखने के लिए Options टैब पर क्लिक करें।
आपके पास निम्नलिखित विकल्प हैं:
Canary token - जब क्वेरी पैरामीटरों के रिफ्लेक्शन का परीक्षण करने के लिए अनुरोध किए जाते हैं, तो यह पैरामीटर का वह मान होता है जिसका उपयोग और जाँच की जाती है।Check for reflection of ' " < - जब क्वेरी पैरामीटरों के रिफ्लेक्शन का परीक्षण करने के लिए अनुरोध किए जाते हैं, तो स्ट्रिंग '",xnl को Canary token के अंत में जोड़ा जाता है। यदि इनमें से कोई भी वर्ण बिना एन्कोड किए रिफ्लेक्ट होता है, तो यह भी रिपोर्ट किया जाएगा। यदि उन वर्णों को पास करने से Canary token बिल्कुल रिफ्लेक्ट नहीं होता (शायद कोई WAF < को ब्लॉक करता है), तो केवल Canary token के साथ एक और अनुरोध किया जाएगा।Show alert box for reflections - यदि यह चुना गया है, और Popup मेनू पर Show query parameter reflections चुना गया है (नीचे देखें), तो एक ब्राउज़र अलर्ट बॉक्स दिखाया जाएगा जिसमें किसी भी रिफ्लेक्ट होने वाले क्वेरी पैरामीटर का विवरण होगा।Copy reflection text to clipboard - यदि यह चुना गया है, और Popup मेनू पर Show query parameter reflections चुना गया है (नीचे देखें), जब पैरामीटर रिफ्लेक्शन पाए जाते हैं, तो विवरण उपयोगकर्ता के क्लिपबोर्ड पर रखे जाते हैं और साथ ही DevTools टैब में लिखे जाते हैं (और अनुरोध करने पर अलर्ट बॉक्स पर भी)। इसका मतलब है कि जैसे ही आप अलर्ट बॉक्स या DevTools टैब में विवरण देखते हैं, आप अपने नोट्स पर जाकर विवरण तुरंत पेस्ट कर सकते हैं। यदि आप टूलबार में Xnl Reveal लोगो पर क्लिक करते हैं, तो आपको एक पॉपअप मेनू दिखाई देगा।
आपके पास निम्नलिखित सेटिंग्स हैं:
ENABLE REVEAL - यदि यह चेक नहीं है तो एक्सटेंशन कुछ नहीं करेगा। यदि चेक है, तो यह विज़िट किए गए वेब पेजों पर कुछ क्रियाएँ करेगा (यदि वे स्कोप में हैं), जो अन्य विकल्पों पर निर्भर करता है।Show query parameter reflections - यदि यह चेक है, तो जब किसी वेब पेज पर विज़िट किया जाता है जिसमें कोई क्वेरी पैरामीटर हैं, तो प्रत्येक पैरामीटर के लिए एक बैकग्राउंड अनुरोध किया जाता है, और प्रत्येक को बारी-बारी से Options पेज के Canary token से प्रतिस्थापित किया जाता है। यदि प्रतिक्रिया में किसी भी पैरामीटर के लिए टोकन पाया जाता है, तो DevTools Xnl Reveal टैब में एक संदेश लिखा जाता है जो आपको URL और उस पेज पर रिफ्लेक्ट हुए सभी पैरामीटर देता है। यदि विकल्प चुने गए हैं, तो ये विवरण ब्राउज़र अलर्ट बॉक्स में भी दिखाए जा सकते हैं और उपयोगकर्ता के क्लिपबोर्ड पर कॉपी किए जा सकते हैं। एक्सटेंशन मिले हुए रिफ्लेक्शन की संख्या के साथ एक बैज भी दिखाएगा।CHARSET IS NOT SPECIFIED IN RESPONSE! संदेश भी दिखाएँगे यदि किसी HTML पेज के लिए charset स्पष्ट रूप से सेट नहीं है। इसका मतलब हो सकता है कि इस ब्लॉग में बताई गई तरकीब से XSS आसान हो सकता है।Write Wayback endpoints to DevTools - यदि यह चेक है, तो ब्राउज़र में विज़िट किए गए प्रत्येक location/path के लिए, 1000 तक endpoints Wayback archive से प्राप्त किए जाएंगे और DevTools Xnl Reveal टैब में लिखे जाएंगे। एक बार जब कोई location/path Wayback API को भेज दिया जाता है, तो उसे दोबारा नहीं भेजा जाएगा, जब तक कि पर क्लिक न किया गया हो।यदि आप किसी वेबपेज पर राइट क्लिक करते हैं, तो आपको ब्राउज़र का संदर्भ मेनू मिलेगा, जैसे यदि आप example.com पर हैं और Options में Whitelist चुना हुआ है, तो आपको यह दिखाई देगा:
ये विकल्प तब भी उपलब्ध हैं जब Popup Menu में ENABLE REVEAL विकल्प चयनित न हो। आपके पास चुनने के लिए 3 विकल्प हैं:
Get wayback endpoints - यदि इस पर क्लिक किया जाता है, तो एक नया टैब खुलेगा जिसमें उस विंडो के डोमेन के लिए Wayback archive endpoints होंगे जिस पर इसे क्लिक किया गया है। यह किसी भी अन्य सेटिंग्स से प्रभावित नहीं होता है और भले ही एक्सटेंशन सक्षम न हो, इसे चलाया जा सकता है।Show hidden elements - यह वर्तमान पेज पर सभी छिपे हुए तत्वों को दिखाएगा, उसी तरह जैसे Show hidden elements करता है, लेकिन एक्सटेंशन को सक्षम होने की आवश्यकता नहीं है।Enable disabled elements - यह वर्तमान पेज पर सभी अक्षम तत्वों को सक्षम करेगा, उसी तरह जैसे Enable disabled elements करता है, लेकिन एक्सटेंशन को सक्षम होने की आवश्यकता नहीं है।Show Google cache version - यदि इस पर क्लिक किया जाता है, तो एक नया टैब खुलेगा जो वर्तमान पेज का Google Cache संस्करण खोलेगा। भले ही कोई वेबसाइट अब उपलब्ध न हो, Google के पास उसकी एक प्रति अपने अभिलेखागार में संग्रहीत होगी, और आप अभी भी कैश किए गए पेज तक पहुँच सकते हैं।Show FOFA domain search - यदि इस पर क्लिक किया जाता है, तो FOFA के साथ एक नया टैब खुलेगा जो domain="{TARGET}" के खोज परिणाम दिखाएगा, जहाँ {TARGET} सक्रिय टैब का डोमेन है।Create word list - यदि इस पर क्लिक किया जाता है, तो पेज की सामग्री से एक शब्द सूची बनाई जाएगी और एक नए टैब में प्रदर्शित की जाएगी।पैरामीटर रिफ्लेक्शन और wayback endpoints के बारे में संदेश पहले कंसोल में लिखे जाते थे, लेकिन अब वे ब्राउज़र DevTools में एक अलग टैब में लिखे जाएंगे। यहाँ से आप यह कर सकते हैं:
Filter messages... - संदेशों की रीयल-टाइम फ़िल्टरिंग करने के लिए कोई भी टेक्स्ट दर्ज करें, जिससे संग्रहीत संदेशों में से विशिष्ट रिफ्लेक्शन या Wayback परिणाम खोजना आसान हो जाता है।Copy All Messages - सभी संदेशों को क्लिपबोर्ड पर कॉपी करें ताकि आप अपने नोट्स में पेस्ट कर सकें!Copy All URLs - वर्तमान में दिखाई दे रहे संदेशों (किसी भी सक्रिय फ़िल्टर का सम्मान करते हुए) से सभी अद्वितीय URLs निकालें और उन्हें क्लिपबोर्ड पर कॉपी करें, प्रति पंक्ति एक। यह आगे के परीक्षण के लिए रिफ्लेक्शन और Wayback परिणामों से सभी URLs को शीघ्रता से एकत्र करने के लिए उपयोगी है।Clear Messages and Cache - टैब और लोकल स्टोरेज से सभी संदेश साफ़ करें। यह उन wayback endpoints को भी साफ़ करेगा जिन्हें पहले खोजा गया था।
यह ब्राउज़र एक्सटेंशन पूर्ण नहीं होने वाला है!
कभी-कभी कोड में बदलाव किसी पेज को तोड़ सकता है। यदि आपको कोई समस्या आती है, तो पॉपअप मेनू में किसी निश्चित सेटिंग को अचयनित करने से पेज पुनः लोड हो जाएगा और यह फिर से ठीक हो सकता है, और आप केवल जाँच नहीं कर पाएंगे।
कुछ स्थितियों में Manage extension पेज पर कुछ त्रुटियाँ भी दिखाई जा सकती हैं।
यदि आप संदर्भ मेनू से कोई विकल्प मैन्युअल रूप से चलाते हैं और कुछ नहीं होता है, तो आपको उस पेज को रिफ्रेश करने की आवश्यकता हो सकती है जिस पर आप विकल्प चलाने का प्रयास कर रहे हैं और पुनः प्रयास करें।
Create word list विकल्प जोड़ें।Error copying to clipboard (NotAllowedError: Document is not focused.) की आंतरायिक त्रुटि को ठीक करने का प्रयास करें।true,false,1, आदि, क्योंकि बहुत सारे गलत-सकारात्मक (false positive) होंगे।यदि आपको कोई भी समस्या आती है, या सुधार के लिए विचार हैं, तो कृपया बेझिझक Github पर एक issue दर्ज करें। यदि कोई समस्या है, तो यह उपयोगी होगा यदि आप वह सटीक URL प्रदान कर सकते हैं जिस पर आप थे, और कोई भी कंसोल त्रुटियाँ।
शुभकामनाएँ और शुभ शिकार!
यदि आप वास्तव में इस टूल (या किसी अन्य) को पसंद करते हैं, या उन्होंने आपको एक शानदार बाउंटी खोजने में मदद की है, तो BUYING ME A COFFEE! ☕ पर विचार करें (मैं कैफीन का उपयोग कर सकता हूँ!)
🤘 /XNL-h4ck3r
Xnl RevealParam blacklist - यह पैरामीटर नामों की एक अल्पविराम से अलग की गई सूची है (जैसे param1,param2) जिन्हें आप यह जाँचने के लिए कैनरी टोकन से प्रतिस्थापित नहीं करना चाहते कि वे रिफ्लेक्ट होते हैं या नहीं। इसका उपयोग तब किया जा सकता है जब कुछ पैरामीटरों का परीक्षण करने से समस्याएँ उत्पन्न होती हैं, जैसे आपको लॉग आउट कर देना।Check delay - जब कोई पेज लोड होता है, सेटिंग्स के आधार पर, एक्सटेंशन छिपे हुए तत्वों को दिखाने और अक्षम तत्वों को सक्षम करने का प्रयास करेगा। हालाँकि, कभी-कभी पेज के कुछ हिस्से डायनामिक रूप से लोड होते हैं और वे मूल प्रतिक्रिया में नहीं होते हैं। पेज के शुरुआती लोड होने के बाद यह विलंब (सेकंड में) बीत जाने पर एक्सटेंशन फिर से दिखाने और सक्षम करने का प्रयास करेगा।Wayback RegEx - यदि Wayback archive endpoints लिखने की सेटिंग चुनी गई है, तो केवल वे wayback endpoints जो दर्ज किए गए RegEx से मेल खाते हैं, DevTools टैब में प्रदर्शित होंगे। यदि फ़ील्ड खाली छोड़ दी जाती है, तो 1000 तक Wayback endpoints लौटाए जाते हैं। महत्वपूर्ण: दर्ज किया गया कोई भी RegEx केस-इनसेंसिटिव माना जाएगाKNOXSS API Key - अपनी KNOXSS API कुंजी दर्ज करें। यदि कोई कुंजी सहेजी गई है और Popup मेनू पर Show query parameter reflections सक्षम है, तो जब कोई रिफ्लेक्शन मिलता है, URL स्वचालित रूप से KNOXSS API को भेजा जाता है। X-API-KEY हेडर सहेजी गई कुंजी के साथ सेट होता है, और वर्तमान पेज के कुकीज़ प्रमाणीकरण हेडर के रूप में पास किए जाते हैं। KNOXSS API प्रतिक्रिया Xnl Reveal DevTools टैब में लिखी जाती है। API कॉल एसिंक्रोनस रूप से की जाती है, इसलिए यह पेज इंटरैक्शन को ब्लॉक नहीं करती है।Extension Scope विकल्प:
Whitelist या Blacklist - यह निर्धारित करता है कि किन साइटों पर पैरामीटर रिफ्लेक्शन जाँच और/या wayback endpoint प्राप्ति परिणाम होंगे। किस विकल्प को चुना गया है, इसके आधार पर, किसी होस्ट को संसाधित करने के लिए उसमें दर्ज किया गया शब्द या तो होना चाहिए या नहीं होना चाहिए।Host match word to add - होस्ट नाम में मौजूद कोई शब्द (या पूरा होस्टनाम) दर्ज करें जिसे आप व्हाइटलिस्ट या ब्लैकलिस्ट करना चाहते हैं, और स्कोप सूची में जोड़ने के लिए Add बटन पर क्लिक करें। उदाहरण के लिए, यदि आप केवल Redbull पेजों पर चलाना चाहते हैं, तो बस redbull जोड़ें और इसे व्हाइटलिस्ट के रूप में सेट करें।Add - दर्ज किए गए शब्द को स्कोप सूची में जोड़ें।Remove selected - चयनित शब्द(ों) को स्कोप सूची से हटाएँ।Clear all - स्कोप सूची से सभी शब्द हटाएँ।Save - यदि कोई विकल्प बदले जाते हैं, तो उन्हें भविष्य में उपयोग के लिए सहेजने हेतु इस बटन पर क्लिक करें।Clear Saved URLs/Params - यदि एक्सटेंशन रिफ्लेक्ट क्वेरी पैरामीटरों की खोज कर रहा है, तो आप समान URL/पैरामीटर संयोजनों के लिए बार-बार अलर्ट नहीं चाहते, इसलिए जो पहले रिपोर्ट किए जा चुके हैं उन्हें रोकने के लिए संग्रहीत किया जाता है। हालाँकि, यदि आप उनकी स्मृति हटाना चाहते हैं, तो आप उन्हें हटाने के लिए इस बटन पर क्लिक कर सकते हैं। इसी तरह, हम Wayback archive पर समान अनुरोध बार-बार भेजना नहीं चाहते, इसलिए वे भी संग्रहीत होते हैं, लेकिन यदि यह बटन दबाया जाता है तो उन्हें साफ़ किया जा सकता है।Clear Saved URLs/ParamsShow hidden elements - यदि यह चेक है, तो कोई भी छिपे हुए तत्व (img, span और div को छोड़कर) दिखाए जाएंगे। उन्हें लाल बॉर्डर और लाल रंग के लेबल के साथ दिखाया जाएगा जो कुछ विवरण देता है। कभी-कभी, यदि पेज डायनामिक है, तो तत्व नहीं दिखाए जा सकते।Enable disabled elements - यदि यह चेक है, तो कोई भी तत्व (img, span और div को छोड़कर) जो अक्षम हैं, सक्षम किए जाएंगे। उन्हें लाल बॉर्डर और लाल रंग के लेबल के साथ दिखाया जाएगा जो कुछ विवरण देता है। कभी-कभी, यदि पेज डायनामिक है, तो तत्व नहीं दिखाए जा सकते। आप वर्तमान लोड किए गए पेज को बदलने के लिए हमेशा Run Now बटन पर क्लिक कर सकते हैं।{Add|Remove} {HOST} {from|to} {whitelist|blacklist} - यह इस बात पर निर्भर करता है कि वर्तमान टैब का होस्ट नाम पहले से स्कोप सूची में है या नहीं, और व्हाइटलिस्ट या ब्लैकलिस्ट का कौन सा विकल्प चुना गया है, आपको इसे जोड़ने/हटाने के लिए एक मेनू आइटम मिलेगा। उदाहरण के लिए, यदि आप https://www.redbull.com/gb-en/ पर हैं और Options पेज पर Blacklist चुना हुआ है, और redbull.com स्कोप सूची में नहीं है, तो आपको Add redbull.com to blacklist का संदर्भ मेनू आइटम दिखाई देगा। महत्वपूर्ण: यदि मेनू आइटम सही होस्ट नहीं दिखाता है, तो आपको टैब रिफ्रेश करने की आवश्यकता हो सकती है।