Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
keycloak-saml-redirect-param-split — Keycloak 26.8.1 SAML ब्रोकर दोष के लिए लूपबैक PoC: एक प्रतिशत-एन्कोडेड डुप्लिकेट SAMLResponse नाम रीडायरेक्ट हस्ताक्षर सत्यापन को बायपास करता है, जिससे किसी अन्य उपयोगकर्ता के रूप में लॉगिन करना संभव हो जाता है। | Kitploit
उपकरण/GitHubGitHub/abraxas/keycloak-saml-redirect-param-split
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपहचान और एक्सेस प्रबंधन (IAM)प्रमाणीकरणलैब और अभ्यास
GitHubabraxas/keycloak-saml-redirect-param-split

keycloak-saml-redirect-param-split

Keycloak 26.8.1 SAML ब्रोकर दोष के लिए लूपबैक PoC: एक प्रतिशत-एन्कोडेड डुप्लिकेट SAMLResponse नाम रीडायरेक्ट हस्ताक्षर सत्यापन को बायपास करता है, जिससे किसी अन्य उपयोगकर्ता के रूप में लॉगिन करना संभव हो जाता है।

रिपॉजिटरी देखें
1112 दिन पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

Abraxas Labs - keycloak-saml-redirect-param-split

keycloak-saml-redirect-param-split

जिसके पास कोई Keycloak खाता नहीं है, वह किसी कंपनी के SAML लॉगिन को किसी अन्य व्यक्ति के रूप में पूरा कर सकता है। वे अपस्ट्रीम पहचान प्रदाता पर एक बार साइन इन करते हैं, उस हस्ताक्षरित रीडायरेक्ट को रख लेते हैं, और उसके आगे एक प्रतिशत-एन्कोडेड नाम के अंतर्गत दूसरा SAML दस्तावेज़ लगा देते हैं। Keycloak ईमानदार हस्ताक्षर की जाँच करता है और फिर उन्हें जाली दस्तावेज़ में दिए गए नाम के रूप में लॉग इन कर देता है। इसके लिए एक ऐसे SAML ब्रोकर की आवश्यकता होती है जो HTTP-Redirect प्रतिक्रियाओं पर हस्ताक्षर करता हो, जिसमें हस्ताक्षर सत्यापन चालू हो और assertion हस्ताक्षर बंद हों, जो कि metadata आयात द्वारा कॉन्फ़िगर किया जाता है। यह issue #53354 वाला सेमीकोलन स्प्लिट नहीं है।

Class: OAuth leftover Reach: Remote (Keycloak के लिए अनप्रमाणित; एक redirect-signing SAML ब्रोकर की आवश्यकता है)

Keycloak 26.8.1 (24ed1dad) - Red Hat

IDअभी तक कोई CVE नहीं
ClassOAuth leftover
ReachRemote (कोई Keycloak खाता नहीं; IdP से एक वास्तविक HTTP-Redirect हस्ताक्षर की आवश्यकता है)
CWECWE-287 / CWE-347 / CWE-116
CVSSHigh: 7.4 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
ProductKeycloak
Affected26.8.1 (24ed1dadf3f246a555adb6d3d4a99e9b3003fb3b); Quarkus 3.40.1; image quay.io/keycloak/keycloak:26.8.1
AuthKeycloak पर कोई नहीं। एक SAML identity-provider ब्रोकर की आवश्यकता है जिसमें validateSignature=true हो और wantAssertionsSigned अनुपस्थित या false हो।
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1:18084

हमलावर क्या कर सकता है

इसके लिए शिकार का NameID (आमतौर पर एक ईमेल) और उस IdP से एक वास्तविक हस्ताक्षरित HTTP-Redirect की आवश्यकता होती है। Keycloak पासवर्ड की आवश्यकता नहीं है। मेलबॉक्स की आवश्यकता नहीं है। केवल-POST वाला IdP वह हस्ताक्षर नहीं देता। metadata आयात POST को प्राथमिकता देने पर भी GET ACS माउंटेड रहता है।

PrivilegeMethod / sinkRecon / integrity / availabilityLab-proven or inferred
ईमानदार हस्ताक्षर के अभी भी सत्यापित होते हुए एक जाली SAML दस्तावेज़ बाइंड करनाहस्ताक्षरित SAMLResponse से पहले SAML%52esponse=<forged> के साथ GET broker ACSIntegrity (authn)Lab-proven. Control email [email protected]. Attack email [email protected]
first-broker-login के माध्यम से शिकार उपयोगकर्ता बनानाजाली NameID पर callback.authenticatedIntegrity (account create)Lab-proven. Victim count 0 before the split query, 1 after
किसी मौजूदा ब्रोकर्ड उपयोगकर्ता के रूप में सत्र, जिसमें वह एडमिन भी शामिल है जो उसी IdP का उपयोग करता हैवही ACS, उस उपयोगकर्ता का NameIDIntegrity (account takeover)Inferred. Lab created the victim on first login
RelayState और auth सत्र बनाए रखनाRelayState हस्ताक्षरित मान ही रहता हैIntegritySource. Signature covers RelayState
नेगेटिव कंट्रोलईमानदार हस्ताक्षरित रीडायरेक्ट, कोई अतिरिक्त पैरामीटर नहींn/aLab-proven. Control finishes as the attacker email

इस leftover पर बंद रहता है

AxisMethod / sinkWhy it is closed
Integrityसेमीकोलन स्प्लिट SAMLResponse=...;SAMLResponse=...issue #53354. quarkus.http.use-semicolon-as-query-param-delimiter=false
IntegritywantAssertionsSigned=true होने पर अहस्ताक्षरित assertionhandleLoginResponse तब assertion हस्ताक्षर की आवश्यकता रखता है
Integrityकोई SAML ब्रोकर नहीं, या केवल-POST वाला IdP जिसमें कोई redirect हस्ताक्षर नहींहमलावर GET पर SigAlg + Signature कभी प्राप्त नहीं करता
IntegrityHost RCE, अनप्रमाणित Admin RESTOut of class
Integrityडिफ़ॉल्ट VERIFY_PROFILE नाम फ़ॉर्मLab-proven as a completion step, not a disproof. The form already holds the brokered email

मैंने इसे कैसे खोजा

मैंने Keycloak 26.8.1 को पिन किया। RESTEasy Reactive, Vert.x से @QueryParam("SAMLResponse") लेता है, जो क्वेरी नामों को प्रतिशत-डिकोड करता है, इसलिए SAML%52esponse SAMLResponse पर सिमट जाता है और पहला मान जीत जाता है। verifyRedirectSignature कच्ची क्वेरी पर getQueryParameters(false) से हस्ताक्षरित स्ट्रिंग को फिर से बनाता है, जहाँ वह नाम एक अलग कुंजी बना रहता है।

पहले से दर्ज गलत रास्ते: #53354 को इस अवशेष के रूप में मानना (प्रतिशत-एन्कोडेड नाम, सेमीकोलन नहीं); लैब क्लाइंट में ACS 302s का पीछा करना और AUTH_SESSION_ID छोड़ देना; VERIFY_PROFILE पर खाली firstName/lastName को मिस के रूप में पढ़ना (ईमेल पहले से ही ब्रोकर्ड NameID है); एक रिवर्स शेल। नाटक।

लैब

Python 3.11+ के साथ cryptography। Docker आवश्यक है।

python3 keycloak-saml-redirect-param-split-Abraxas-Labs.py

या:

cd lab
./run.sh

केवल http://127.0.0.1:18084 को लक्षित करें। इमेज quay.io/keycloak/keycloak:26.8.1। लॉन्चर lab/ में chdir करता है और run.sh को exec करता है। लैब IdP इन-प्रोसेस है। यह कभी भी किसी वास्तविक पहचान प्रदाता से संवाद नहीं करता।

IOC image=quay.io/keycloak/keycloak:26.8.1 label-version=26.8.1
IOC serverinfo-version=26.8.1
IOC validate-signature=true want-assertions-signed=absent
IOC review-profile=DISABLED
IOC [email protected]
IOC victim-before=0
IOC [email protected]
IOC victim-after=1
SUCCESS KC-H04-SAML-REDIRECT kcs04b8n1

समाधान

उसी क्वेरी दस्तावेज़ को सत्यापित करें जिसे एंडपॉइंट पार्स करता है। हस्ताक्षर पुनर्निर्माण से पहले पैरामीटर नामों को प्रतिशत-डिकोड करें, या डिकोडिंग के बाद एक से अधिक SAMLResponse वाली क्वेरी को अस्वीकार करें। रीडायरेक्ट ब्रोकर्स के लिए, मेटाडेटा-आयात पथ सहित, wantAssertionsSigned चालू करें।

संदर्भ

  • github.com/keycloak/keycloak टैग 26.8.1 (24ed1dadf3f246a555adb6d3d4a99e9b3003fb3b)
  • SAMLEndpoint.redirectBinding (SAMLEndpoint.java:182-183, :779-813, :896-914)
  • SamlProtocolUtils.verifyRedirectSignature (SamlProtocolUtils.java:216-249)
  • KeycloakUriInfo.getQueryParameters (KeycloakUriInfo.java:147-163)
  • निकटवर्ती (यह पथ नहीं): issue #53354 अर्धविराम विभाजन
  • CWE-287 · CWE-347 · CWE-116

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE। केवल लूपबैक लैब। कोई वारंटी नहीं।

Abraxas Labs [email protected]

कृपया CVE का श्रेय Abraxas Labs को दें।

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