
Pluck CMS के 4.7.7-dev2 से पूर्व के संस्करणों को फ़ाइल अपलोड भेद्यता के साथ प्रभावित करने वाले CVE-2018-11736 के लिए PoC एक्सप्लॉइट।
अस्वीकरण ⚠️: यह एक्सप्लॉइट मुख्य रूप से एक परिचयात्मक प्रोग्रामिंग सीखने के अभ्यास के रूप में Rust में विकसित किया गया था। कृपया तकनीकी कठोरता या गैर-प्रचलित कोड पैटर्न की कमी को क्षमा करें। साथ ही, यह मेरी खोज नहीं है; इस एक्सप्लॉइट को लिखने के लिए मैंने आधिकारिक रिपोर्टों पर भरोसा किया।
CVE-2018-11736 के लिए PoC एक्सप्लॉइट जो Pluck CMS के 4.7.7-dev2 से पहले के संस्करणों को प्रभावित करता है। यह कमजोरी /data/inc/images.php में स्थित है, जो एक हमलावर को मनमानी फ़ाइलें अपलोड करने की अनुमति देती है। image/jpeg MIME प्रकार के साथ छिपी हुई एक दुर्भावनापूर्ण .htaccess फ़ाइल अपलोड करके, वेब सर्वर को .jpg फ़ाइलों को PHP स्क्रिप्ट के रूप में व्याख्या करने के लिए मजबूर करना संभव है, जिससे मनमाना PHP कोड निष्पादन होता है।
main.rs को संकलित करने के लिए आपके पास Cargo स्थापित होना चाहिए।
cargo build
और लक्षित Pluck CMS इंस्टेंस से एक मान्य प्रमाणित सत्र कुकी आवश्यक है:
./CVE-2018-11736 -h
CVE-2018-11736 exploit. Uploads a malicious .htaccess to force the web server to interpret .jpg files as PHP scripts, leading to Remote Code Execution (RCE)
Usage: CVE-2018-11736 --cookie <COOKIE> --base-url <BASE_URL> --hta-path <HTACCESS> --image-path <IMAGE>
Options:
-c, --cookie <COOKIE> Session Cookie (Once you have logged in succesfully). Format: xxxxxxxxxxxx
-u, --base-url <BASE_URL> Base URL (e.g. http://localhost)
-H, --hta-path <HTACCESS> Path to the .htaccess file
-i, --image-path <IMAGE> Path to the fake image file
-h, --help Print help
-V, --version Print version
पुनरुत्पादकता और सुरक्षित परीक्षण सुनिश्चित करने के लिए, Pluck CMS v4.7.4-dev5 का एक कमजोर उदाहरण Docker का उपयोग करके तैनात किया जा सकता है। इसे तैनात करने के लिए, आपको कमजोर संस्करण का .zip डाउनलोड करना होगा:
wget https://github.com/pluck-cms/pluck/archive/refs/tags/4.74-dev5.zip
फिर, docker फ़ाइलों की समान निर्देशिका में अगला कमांड चलाएँ:
docker-compose up -d
वेब एप्लिकेशन http://localhost:8080 पर उपलब्ध होगा। यदि आप कंटेनर के अंदर एक TTY खोलना चाहते हैं:
docker exec -it pluck-cms bash
यहाँ PoC को क्रियान्वित दिखाया गया है, जो दुर्भावनापूर्ण कॉन्फ़िगरेशन के अपलोड और RCE को प्रदर्शित करता है।