
विभिन्न JWT लाइब्रेरीज़ पर एल्गोरिथम कन्फ्यूज़न हमले का डेमो
Json Web Token (JWT) लाइब्रेरीज़ पर एल्गोरिथम कन्फ्यूज़न हमले (algorithm confusion attack) का प्रदर्शन। JWT का उपयोग अक्सर कुकीज़ में उपयोगकर्ता सत्र प्रमाणित करने के लिए किया जाता है और इसलिए यह हमला महत्वपूर्ण है। भेद्यता प्रदर्शित करने के लिए node मॉड्यूल [email protected] का उपयोग किया गया था।
यह प्रोजेक्ट एक अच्छी वाइब कोडिंग गतिविधि भी थी, क्योंकि फ्रंट एंड लगभग पूरी तरह से एपीआई कॉल्स के अलावा LLMs द्वारा किया गया था।
JWT का प्रारूप निम्नलिखित है:
b64(header).b64(payload).b64(signature)
With in our case:
header = (algorithm, type)
payload = (username, role)
उस समय, विभिन्न JWT लाइब्रेरीज़ एक एल्गोरिथम के साथ हस्ताक्षर कर सकती थीं, लेकिन एल्गोरिथम को लागू नहीं करती थीं; इसके बजाय वे JWT के हेडर की सामग्री पर निर्भर करती थीं, जिससे उपयोगकर्ता को अपना स्वयं का एन्क्रिप्शन चुनने की छूट मिलती थी। यह कई एक्सप्लॉइट्स की अनुमति देता है, लेकिन इस मामले में उपयोग किया गया एक्सप्लॉइट निम्नलिखित है:
लॉगिन पेज पर किसी भी उपयोगकर्ता के रूप में प्रमाणित करें। आपको पहले पंजीकरण करना होगा।
होम पेज पर पहुंचने के बाद, एक बटन होगा जिसे केवल तभी क्लिक किया जा सकता है जब आपके पास एक मान्य एडमिन सत्र हो। फिर आपको इस JWT को गढ़ने के लिए एक्सप्लॉइट चलाना होगा।
अंत में, आप लोकल स्टोरेज में मूल JWT को गढ़े हुए JWT से बदल देते हैं और रीफ्रेश के बाद, बटन क्लिक करने योग्य हो जाना चाहिए और फ्लैग आपका है!