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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-47051 — Mautic < 5.2.3 प्रमाणीकृत RCE | Kitploit
उपकरण/GitHubGitHub/mallo-m/cve-2024-47051
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेलोड डेवलपमेंट
GitHubmallo-m/cve-2024-47051

CVE-2024-47051

Mautic < 5.2.3 प्रमाणीकृत RCE

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

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

सभी देखें →

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

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

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

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

सारांश

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

पाथ ट्रैवर्सल भी इस कार्यक्षमता का फायदा उठाकर फाइलसिस्टम पर किसी भी निर्देशिका को पुनरावर्ती रूप से हटाने की अनुमति देता है, जिसे वेब-यूज़र संशोधित करने की अनुमति रखता है।

विवरण - RCE

जब /assets/view/{assetID} रूट के माध्यम से किसी एसेट को संपादित किया जाता है, तो एसेट की फ़ाइल को बदलने की संभावना दी जाती है।

नई फ़ाइल अपलोड करने पर अंततः app/Bundles/AssetBundle/Controller/AssetController.php के अंदर निम्नलिखित फ़ंक्शन कॉल होता है:

public function editAction(Request $request, UploaderHelper $uploaderHelper, AssetModel $model, $objectId, $ignorePost = false)

अपलोड लॉजिक यहाँ पाया जा सकता है:

root@kitploit:~
        if (!$ignorePost && 'POST' == $method) {
            $valid = false;
            if (!$cancelled = $this->isFormCancelled($form)) {
                if ($valid = $this->isFormValid($form)) {
                    $entity->setUploadDir($this->coreParametersHelper->get('upload_dir'));
                    $entity->preUpload();
                    $entity->upload();

अधिक विशेष रूप से, हम preUpload() और upload() मेथड्स में रुचि रखते हैं, क्योंकि ये डिस्क पर वास्तविक फ़ाइल लेखन को संभालते हैं। पहला दोष app/Bundles/AssetBundle/Entity/Asset.php में preUpload() में है, क्योंकि यह कार्यान्वयन हमें एक मनमाना फ़ाइल एक्सटेंशन निर्दिष्ट करने की अनुमति देता है (इस प्रकार सामान्यतः allowed_extensions array द्वारा प्रदत्त सुरक्षा को दरकिनार करता है):

root@kitploit:~

            $filename  = sha1(uniqid(mt_rand(), true));
            $extension = $this->getFile()->guessExtension();

            if (empty($extension)) {
                // get it from the original name
                $extension = pathinfo($this->originalFileName, PATHINFO_EXTENSION);
            }

            $this->path = $filename.'.'.$extension;

यदि हम .php पर समाप्त होने वाली फ़ाइल का नाम और <?php टैग से शुरू होने वाली सामग्री प्रदान करते हैं, तो $extension = $this->getFile()->guessExtension(); पंक्ति NULL लौटाएगी। इसलिए empty($extension) जाँच सत्य (true) होगी, और फ़ाइल एक्सटेंशन फिर pathinfo() कॉल के माध्यम से निकाला जाएगा, जिससे हम मनमानी सामग्री और एक्सटेंशन के साथ अस्थायी फ़ाइलें अपलोड कर सकते हैं। हम फ़ाइल के वास्तविक नाम को नियंत्रित नहीं कर सकते क्योंकि यह sha1() के साथ उत्पन्न होता है।

फिर, अगले upload() मेथड के अंदर, फ़ाइल वास्तव में निम्नलिखित कॉल के माध्यम से वेब डायरेक्टरी के अंदर डिस्क पर लिखी जाएगी:

$this->getFile()->move($this->getUploadDir(), $this->path);

यह हमारे मनमाने एक्सटेंशन ($this->path वेरिएबल में निहित) का उपयोग कर रहा है। फ़ाइल का नाम फिर Asset विवरण पृष्ठ (/assets/view/{assetId}) को रीफ़्रेश करके, Local filename तालिका प्रविष्टि के अंतर्गत प्राप्त किया जा सकता है।

नोट : यह नया Asset बनाते समय भेजे गए अनुरोधों को बदलकर भी काम करता है। यह newAction() फ़ंक्शन को कॉल करेगा, लेकिन लॉजिक समान है, और दोष अभी भी preUpload() और upload() मेथड्स में हैं।

PoC - RCE

PoC अगले एक महीने या उसके आसपास प्रकाशित नहीं किया जाएगा।

यह उन संगठनों को समय देने के लिए है जो इस सॉफ़्टवेयर पर निर्भर हैं, ताकि वे स्क्रिप्ट किडीज़ द्वारा अपनी चीज़ें खराब किए जाने के डर के बिना इसे पैच कर सकें।

उसके बाद, इस रेपो को पूर्ण एक्सप्लॉइटेशन स्क्रिप्ट और प्रमाणों के साथ अपडेट किया जाएगा। इस पृष्ठ पर पहले से ही पर्याप्त जानकारी है।

विवरण - मनमाना फ़ाइल विलोपन

अस्थायी अपलोड को मान्य करते समय (/s/assets/new या /s/assets/edit/{assetId} के माध्यम से), अस्थायी फ़ाइल को संग्रहीत करने वाली निर्देशिका अनुरोध के अंत में पुनरावर्ती रूप से हटा दी जाती है। अस्थायी निर्देशिका का नाम रखने के लिए ज़िम्मेदार पैरामीटर पाथ ट्रैवर्सल हमलों के लिए अतिसंवेदनशील है, जो एक प्रमाणित हमलावर को सिस्टम पर किसी भी निर्देशिका को हटाने की अनुमति देता है, बशर्ते कि वेब यूज़र के पास ऐसा करने की अनुमति हो। इसके परिणामस्वरूप डेटा हानि हो सकती है, या यदि सर्वर रूट यूज़र द्वारा निष्पादित होता है तो पूरे फाइलसिस्टम का विनाश भी हो सकता है।

PoC - मनमाना फ़ाइल विलोपन

नीचे उपयोग किए गए एंडपॉइंट के माध्यम से सिस्टम पर मौजूद किसी भी फ़ाइल को निर्दिष्ट करें। यदि फ़ाइल मौजूद है, तो सर्वर उस निर्देशिका को हटाने का प्रयास करेगा जिसमें वह संग्रहीत है।

प्रभाव

सर्वर अधिग्रहण सेवा से वंचित डेटा हानि

समयरेखा

  • 14 अक्टूबर 2024 : Mautic टीम को पहली बार संपर्क और एडवाइजरी भेजी गई
  • 12 नवंबर 2024 : डेवलपमेंट टीम को एक्सप्लॉइटेशन स्क्रिप्ट और सुधार सुझाव भेजे गए
  • 13 दिसंबर 2024 : दूसरी बार संपर्क किया गया
  • 21 जनवरी 2025 : पैच तैनाती के लिए तैयार
  • 25 फरवरी 2025 : CVE निर्धारित और प्रकाशित
टूल डाउनलोड करें