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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Weblogic-CVE-2020-2551-To-Internet — CVE-2020-2551 POC इंटरनेट पर उपयोग करने के लिए | Kitploit
उपकरण/GitHubGitHub/dido1960/weblogic-cve-2020-2551-to-internet
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubdido1960/weblogic-cve-2020-2551-to-internet

Weblogic-CVE-2020-2551-To-Internet

CVE-2020-2551 POC इंटरनेट पर उपयोग करने के लिए

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

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

सभी देखें →

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

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

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

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

Weblogic-CVE-2020-2551-To-Internet

CVE-2020-2551 POC इंटरनेट पर उपयोग करने के लिए

  • टेस्ट POC (इंटरनेट परीक्षण के लिए उपलब्ध)

    python CVE-2020-2551.py [HOST] [IP]

  • codebase को संशोधित करके दूरस्थ क्लास लोडिंग का प्रयास (विफल)

    python CVE-2020-TEST.py [HOST] [IP]

weblogic CVE-2020-2551 भेद्यता पर संक्षिप्त चर्चा और इंटरनेट POC का निर्माण

(पहली बार Anquanke पर प्रकाशित, मूल लिंक)

0x00 मूल अवधारणाएँ

इस भेद्यता को सीखने के लिए कुछ पूर्वापेक्षित ज्ञान आवश्यक है, जैसे CORBA और RMI।

संक्षेप में एक अवलोकन:

CORBA, OMG द्वारा विकसित एक तकनीकी मानक है, जिसका उपयोग वितरित अनुप्रयोगों के लिए किया जाता है। इसमें क्रॉस-भाषा समर्थन के लिए IDL का उपयोग होता है, और क्लाइंट तथा सर्वर के बीच संचार IIOP प्रोटोकॉल के माध्यम से होता है।

RMI एक अन्य वितरित अनुप्रयोग तकनीक है; Java में JNDI का उपयोग करके इसे सरल बनाया जा सकता है। क्लाइंट और सर्वर JRMP प्रोटोकॉल के माध्यम से संचार करते हैं, हालाँकि weblogic में RMI T3 प्रोटोकॉल का उपयोग करता है। इस संबंध में पहले भी कई भेद्यताएँ सामने आ चुकी हैं।

RMI-IIOP RMI और CORBA दोनों की अपनी-अपनी खूबियों को जोड़ता है और IIOP प्रोटोकॉल के माध्यम से RMI अनुप्रयोगों को तैनात करता है।

आधिकारिक दस्तावेज़ में भी उल्लेख है:

RMI सर्वर ऑब्जेक्ट IIOP प्रोटोकॉल का उपयोग कर सकते हैं और किसी भी भाषा में लिखे गए CORBA क्लाइंट ऑब्जेक्ट के साथ संचार कर सकते हैं।

0x01 RMI-IIOP

फिलहाल weblogic पर ध्यान केंद्रित न करते हुए, पहले देखें कि RMI-IIOP उदाहरण कैसे लिखा जाता है:

क्लाइंट कोड के लिए, Java में RMI, JNDI, LDAP, JRMP, JMX, JMS वाली बातें (भाग 1) में दिए गए परीक्षण प्रोजेक्ट को देख सकते हैं। आप HelloClient और HelloServer को स्वयं कंपाइल कर सकते हैं, या परीक्षण प्रोजेक्ट में पहले से कंपाइल किए गए बाइनरी का उपयोग कर सकते हैं।

कमांड लाइन पर नेम सर्वर (Java के साथ आता है) प्रारंभ करें:

start orbd -ORBInitialPort 1050

कमांड लाइन से HelloServer सर्वर प्रारंभ करें और रिमोट डिबगिंग कॉन्फ़िगर करें। IDEA से रिमोट डिबगिंग कैसे करें, इसके लिए यहाँ के आरंभ में बताई गई विधि देखें।

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 HelloServer

बेशक, रिमोट डिबगिंग के बिना भी सीधे परिणाम देख सकते हैं; सीधे चलाएँ:

java HelloServer

कमांड लाइन से क्लाइंट प्रारंभ करें:

Java HelloClient 

इस समय एक कैलकुलेटर खुलेगा। यदि रिमोट डिबगिंग सफल होती है, तो आप निम्न कॉल स्टैक देख सकते हैं:

EvilMessage.readObejct() में कमांड निष्पादित होता है

एक अलग बात: weblogic की स्थापना और डिबगिंग पर लेख

तो weblogic में RMI-IIOP कैसा है? Java में RMI-IIOP के बारे में लेख में weblogic RMI-IIOP के शोषण का उल्लेख है; उसी के आधार पर कुछ शोध किए गए। WebLogic के IIOP पर RMI का उपयोग करना में weblogic द्वारा RMI-IIOP क्लाइंट का उपयोग करने के कई तरीके बताए गए हैं, जिनमें शामिल हैं:

  1. स्टैंडअलोन RMI क्लाइंट (JNDI के साथ, weblogic की किसी भी चीज़ का उपयोग किए बिना)
  2. WebLogic क्लाइंट
  3. J2EE क्लाइंट
  4. CORBA/IDL क्लाइंट

पहले दो तरीकों के बीच अंतर केवल JNDI_FACTORY सेटिंग में प्रतीत होता है।

पहले जब weblogic T3 डिसीरियलाइज़ेशन का अध्ययन किया, तो weblogic पर एक Helloserver एप्लिकेशन तैनात किया था, जिसमें sayhello() विधि का उपयोग किया जा सकता है। दोनों JNDI_FACTORY सेटिंग्स आज़माने के बाद, दूसरी JNDI_FACTORY से sayHello() विधि सफलतापूर्वक कॉल हुई।

तो हमने weblogic T3 प्रोटोकॉल के POC को संशोधित किया — वास्तव में केवल RMI को IIOP में बदला। देखा कि jtaTransactionManager शोषण श्रृंखला सफलतापूर्वक निष्पादित हुई और स्थानीय jrmplisten को एक jrmp अनुरोध भेजा।

ट्रैफ़िक देखें; जब remove() विधि कॉल होती है, तो remove__java_lang_Object अनुरोध भेजा जाता है। ट्रैफ़िक में दुर्भावनापूर्ण डेटा है, लेकिन aced मैजिक हेडर नहीं मिला।

अनुमान है कि सर्वर पक्ष पर विशेष पार्सिंग के बाद डेटा का डिसीरियलाइज़ेशन होता है। कॉल स्टैक देखने पर पता चलता है कि बाद वाला भाग पहले वाले नेटिव RMI-IIOP निष्पादन श्रृंखला के समान है। पहले यह CDRInputStream.read_value() से ट्रिगर होता था; यहाँ यह weblogic में IIOPInputStream.read_value() से ट्रिगर होता है। (यह read_value बिंदु 2019 की प्रस्तुति में भी उल्लिखित है।)

यहाँ अनुरोध पहले clusterableServerRef.invoke() को दिया जाता है, और विभिन्न invoker के अनुसार this.invoker.invoke() कॉल होता है। फिर यहाँ Mejb_dj5nps_HomeImpl_WLSkel.invoke() कॉल होता है। चूँकि यह "remove" है, यह case 6 ब्रांच में जाता है और IIOPInputStream.readObject() को कॉल करता है; read_value() विधि में IIOPInputStream डेटा पार्स होकर डिसीरियलाइज़ेशन ट्रिगर होता है। यह remove() विधि का उपयोग करने वाला POC है।

0x02 CVE-2020-2551

Lucifaer के [विश्लेषण लेख](https://lucifaer.com/2020/02/25/WebLogic WLS核心组件RCE分析(CVE-2020-2551)/?from=timeline&isappinstalled=0#2-2-Weblogic解析流程) में bind() विधि के माध्यम से शोषण का उल्लेख है; यह इंटरनेट पर मुख्यधारा का शोषण तरीका भी है। कॉल स्टैक का अनुसरण करें।

पहले जैसे ही, यहाँ अनुरोध पहले clusterableServerRef.invoke() को दिया जाता है, और विभिन्न invoker के अनुसार this.invoker.invoke() कॉल होता है। यहाँ CobraServerRef.invoke() कॉल होता है, फिर _NamingContextAnyImplBase._invoke() में, चूँकि va1 "bind_any" है, यह case 0 ब्रांच में जाता है और IIOPInputStream.read_any() विधि कॉल करता है; आगे भी IIOPInputStream.read_value() कॉल होकर डिसीरियलाइज़ेशन ट्रिगर करता है। पहले कहा गया था कि ट्रैफ़िक में aced मैजिक हेडर नहीं दिखा, इसका कारण यह है कि IIOPInputStream में एक पार्सिंग विधि है। IIOPInputStream का hex-value रूप निम्न है, जिसमें क्लास नाम और फ़ील्ड जानकारी शामिल होती है:

अंततः दुर्भावनापूर्ण क्लास की readObejct() विधि कॉल होती है।

पैच देखने पर पता चला कि यह 2015 में T3 डिसीरियलाइज़ेशन शोषण के पैच के समान स्थान पर है।

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