
SignSaboteur एक Burp Suite एक्सटेंशन है जो विभिन्न हस्ताक्षरित वेब टोकनों को संपादित करने, हस्ताक्षर करने और सत्यापित करने के लिए है।
SignSaboteur हस्ताक्षरित टोकनों को संपादित करने, हस्ताक्षर करने, सत्यापित करने और हमला करने के लिए एक Burp Suite एक्सटेंशन है। यह विभिन्न प्रकार के टोकनों का समर्थन करता है: Django TimestampSigner, ItsDangerous Signer, Express cookie-session middleware, OAuth2 Proxy, Tornado के हस्ताक्षरित कुकीज़, Ruby Rails हस्ताक्षरित कुकीज़, Ruby Rails एन्क्रिप्टेड कुकीज़, Nimbus JOSE + JWT और अज्ञात हस्ताक्षरित स्ट्रिंग।
आप एक्सटेंशन के बारे में अधिक जानकारी Portswigger Research ब्लॉग पोस्ट पेज पर पा सकते हैं - SignSaboteur का परिचय: सहजता से हस्ताक्षरित वेब टोकन बनाएं।
यह HTTP अनुरोधों/प्रतिक्रियाओं और WebSocket संदेशों के भीतर टोकन का स्वचालित पता लगाने और इन-लाइन संपादन, टोकन पर हस्ताक्षर करना और हस्ताक्षरित टोकन कार्यान्वयन के विरुद्ध ब्रूट फोर्स हमलों का स्वचालन प्रदान करता है।
यह Fraser Winterborn और Dolph Flynn के JWT टोकन एक्सटेंशन से प्रेरित था। मूल स्रोत कोड यहाँ और यहाँ पाया जा सकता है।
./gradlew jar चलाएँbuild/libs निर्देशिका में JAR फ़ाइल sign-saboteur-1.0.6.jar रखेगाExtensions टैब, Installed उप-टैब पर जाकर, Add पर क्लिक करके और JAR फ़ाइल लोड करके Burp में लोड किया जा सकता है
Wordlist View रहस्य और नमक सूची फ़ाइलों को आयात करने की अनुमति देता है। एक्सटेंशन की अपनी पूर्व-निर्मित शब्दकोश सूचियाँ हैं। अधिकांश रहस्य jwt-secrets से लिए गए हैं। एक विकल्प के रूप में, Flask-Unsign-Wordlist का उपयोग किया जा सकता है। एक्सटेंशन विशेष वर्णों के लिए JSON स्ट्रिंग प्रारूप का समर्थन करता है, इसका उपयोग करने के लिए रहस्य स्ट्रिंग को " से उद्धृत करें।
Editor View कई हस्ताक्षरित टोकनों का समर्थन करता है: Django, Dangerous, Flask, Express, OAuth2 और Tornado। यह Burp Suite के HTTP अनुरोध/प्रतिक्रिया दृश्य में Proxy, History और Repeater टूल में हस्ताक्षरित टोकनों के संशोधन की अनुमति देता है।
Dangerous टैब का उपयोग Flask और Django दोनों टोकनों के लिए किया जा सकता है, जो इस आधार पर चुने जाते हैं कि Dangerous या Django टोकन का पता चला है या नहीं।
Unknown टैब का उपयोग अज्ञात हस्ताक्षरित स्ट्रिंग्स पर ब्रूट फोर्स करने के लिए किया जा सकता है। अनुमान लगाने का मोड केवल Balanced और Deep ब्रूट फोर्स हमलों के साथ काम करता है। यह विभिन्न संदेश व्युत्पत्ति तकनीकों का समर्थन करता है, जिनमें शामिल हैं:
JSON सामग्री वाले प्रत्येक घटक को संपादित करने के लिए एक JSON टेक्स्ट संपादक प्रदान किया गया है:
टाइमस्टैम्प वाले प्रत्येक घटक को संपादित करने के लिए एक टाइमस्टैम्प संपादक प्रदान किया गया है:
Express हस्ताक्षरों को छोड़कर सभी हस्ताक्षरित टोकनों के लिए एक हेक्स संपादक प्रदान किया गया है। नोट Express टैब अभी तक स्वचालित हस्ताक्षर अद्यतन का समर्थन नहीं करता है। कृपया इसे मैन्युअल रूप से संबंधित हस्ताक्षर कुकी में कॉपी करें।
Sign एक हस्ताक्षर संवाद प्रस्तुत करता है जिसका उपयोग Keys View से एक कुंजी का उपयोग करके टोकन पर हस्ताक्षर करके हस्ताक्षर को अद्यतन करने के लिए किया जा सकता है जिसमें हस्ताक्षर करने की क्षमता है।
Brute force गुप्त कुंजी खोजने का प्रयास करेगा जिसका उपयोग हस्ताक्षर निर्माण के लिए किया गया था। यदि कोई गुप्त कुंजी मिल जाती है, तो एक संवाद प्रस्तुत किया जाएगा।
Brute force विकल्प हस्ताक्षरित टोकन के हस्ताक्षरों के विरुद्ध तीन प्रकार के हमलों को लागू करता है:
Attack विकल्प हस्ताक्षरित टोकनों के विरुद्ध आठ प्रसिद्ध प्रमाणीकरण हमलों को लागू करता है:
इनका वर्णन नीचे और अधिक विस्तार से किया गया है।
इन सभी हमलों का एक साथ उपयोग किया जा सकता है। कृपया ध्यान रखें कि एक्सटेंशन Attack मोड पर टोकन पेलोड संशोधन का समर्थन नहीं करता है, इसलिए आपका पेलोड एक नए पेलोड से बदल दिया जाएगा।
OpenID कनेक्ट आईडी टोकन प्रारूप आमतौर पर हस्ताक्षर पुस्तकालयों द्वारा प्रमाणित उपयोगकर्ता के बारे में जानकारी संग्रहीत करने के लिए उपयोग किया जाता है। एक्सटेंशन admin उपयोगकर्ता आईडी टोकन के लिए प्लेसहोल्डर उत्पन्न करेगा।
User claims हमले के समान लेकिन इसे user JSON विशेषता में रखा जाएगा।
उपयोगकर्ता विवरण संग्रहीत करने का एक और सामान्य तरीका username और password JSON विशेषताएँ हैं। एक्सटेंशन admin उपयोगकर्ता के लिए प्लेसहोल्डर उत्पन्न करेगा।
Flask प्रमाणित उपयोगकर्ता सत्र जानकारी यदि क्लाइंट साइड पर संग्रहीत है, तो इसमें id और _id और user_id या _user_id JSON विशेषता शामिल होनी चाहिए। एक्सटेंशन पहले उपयोगकर्ता के लिए सत्र उत्पन्न करेगा, आमतौर पर admin।
Express फ्रेमवर्क उपयोगकर्ता विवरण संग्रहीत करने के लिए passport JSON विशेषता का उपयोग करता है। एक्सटेंशन admin उपयोगकर्ता के लिए प्लेसहोल्डर उत्पन्न करेगा।
कुछ फ्रेमवर्क प्रमाणित उपयोगकर्ता के बारे में जानकारी संग्रहीत करने के लिए account रैपर का उपयोग कर सकते हैं। शोषण के लिए, Authenticated claims का भी उपयोग करना आवश्यक हो सकता है।
Authenticated claims 12 प्रसिद्ध प्रमाणीकरण फ़्लैग लागू करता है।
User access_token विकल्प बिना किसी कुंजी व्युत्पत्ति के, उसी कुंजी और उसी हैशिंग एल्गोरिदम के साथ हस्ताक्षरित JWT OpenID कनेक्ट आईडी टोकन उत्पन्न करता है।