
Docker-आधारित प्रयोगशाला जो CVE-2026-56011 को पुनरुत्पादित और मान्य करने के लिए है, जो WordPress के लिए MapPress Maps में एक अप्रमाणित XSS भेद्यता है, जिसमें असुरक्षित और पैच किए गए तुलनात्मक लक्ष्य शामिल हैं।
इस रिपॉजिटरी में CVE-2026-56011 को प्रतिलिपित और मान्य करने के लिए एक स्थानीय Docker लैब शामिल है, जो MapPress Maps for WordPress को प्रभावित करने वाली एक अप्रमाणित क्रॉस-साइट स्क्रिप्टिंग भेद्यता है।
MapPress Maps for WordPress एक WordPress प्लगइन है जो WordPress पेजों और पोस्टों में मानचित्र प्रदर्शित करने के लिए उपयोग किया जाता है। कमजोर व्यवहार iframe मानचित्र रेंडरिंग पथ को प्रभावित करता है जो mappress=embed अनुरोध पैरामीटर के माध्यम से पहुंच योग्य है।
यह लैब दो MapPress संस्करणों की तुलना करता है:
| सेवा | MapPress संस्करण | उद्देश्य | URL |
|---|---|---|---|
| vuln | 2.97.3 | तुलना के लिए कमजोर लक्ष्य | http://localhost:8081 |
| patched | 2.97.4 | तुलना के लिए पैच किया गया लक्ष्य | http://localhost:8082 |
इस स्थानीय लैब में प्रदर्शित मान्यकरण पथ है:```text Unauthenticated browser request → GET /?mappress=embed → request supplies a crafted name value → vulnerable target renders name into an unquoted id attribute → injected onclick handler becomes a standalone HTML attribute → clicking the rendered MapPress component triggers alert(1) → patched target keeps the payload inside a quoted and escaped id attribute → clicking the rendered component does not trigger alert(1)
असुरक्षित लक्ष्य इस मैन्युअल ब्राउज़र URL का उपयोग करता है:```text
http://localhost:8081/?mappress=embed&name=cve56011%20onclick%3Dalert%281%29&width=400px&height=300px&zoom=5¢er=0%2C0
अपेक्षित संवेदनशील परिणाम:```text Click on the rendered MapPress component → alert(1) pops up
पैच किया गया लक्ष्य MapPress 2.97.4 के विरुद्ध उसी पेलोड का उपयोग करता है:```text
http://localhost:8082/?mappress=embed&name=cve56011%20onclick%3Dalert%281%29&width=400px&height=300px&zoom=5¢er=0%2C0
अपेक्षित पैच परिणाम:```text Click on the rendered MapPress component → no alert appears
यह लैब जानबूझकर केवल मैन्युअल ब्राउज़र सत्यापन का उपयोग करती है। इसमें PoC स्क्रिप्ट, ब्राउज़र ऑटोमेशन, क्रेडेंशियल चोरी, बाहरी कॉलबैक, मैलवेयर, पर्सिस्टेंस, पोस्ट-एक्सप्लॉइटेशन गतिविधि, या बाहरी सिस्टम के विरुद्ध हमले शामिल नहीं हैं।
## सत्यापित तथ्य
| दावा | साक्ष्य | इस लैब में कैसे सत्यापित करें |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| CVE-2026-56011, वर्डप्रेस के लिए MapPress Maps को प्रभावित करता है। | सार्वजनिक भेद्यता सलाहकार MapPress Maps for WordPress को प्रभावित वर्डप्रेस प्लगइन के रूप में पहचानते हैं। | संदर्भ अनुभाग की समीक्षा करें और दोनों Docker लक्ष्यों में स्थापित प्लगइन का निरीक्षण करें। |
| इस लैब में कमजोर तुलना संस्करण MapPress 2.97.3 है। | `vuln` सेवा `MAPPRESS_VERSION: 2.97.3` का उपयोग करके प्लगइन बनाती है। | `docker-compose.yml` और `vuln/Dockerfile` का निरीक्षण करें। |
| इस लैब में पैच किया गया तुलना संस्करण MapPress 2.97.4 है। | `patched` सेवा `MAPPRESS_VERSION: 2.97.4` का उपयोग करके प्लगइन बनाती है। | `docker-compose.yml` और `patched/Dockerfile` का निरीक्षण करें। |
| MapPress 2.97.4 में प्रासंगिक iframe एस्केपिंग फिक्स पेश किया गया। | आधिकारिक प्लगइन चेंजलॉग 2.97.4 के लिए कहता है `Added: escape in iframe`. | आधिकारिक वर्डप्रेस प्लगइन चेंजलॉग की समीक्षा करें और कमजोर तथा पैच किए गए स्रोत की तुलना करें। |
| कमजोर स्रोत बिना उद्धरण के मानचित्र नाम को वेब घटक `id` में प्रस्तुत करता है। | 2.97.3 में, `mappress_map.php` प्रस्तुत करता है `<mappress-map id={$name} ...>`। | 2.97.3 स्रोत की 2.97.4 स्रोत से तुलना करें। |
| पैच किया गया स्रोत `id` मान को उद्धृत और एस्केप करता है। | 2.97.4 में, `mappress_map.php` प्रस्तुत करता है `id="` के साथ `esc_attr($name)`। | 2.97.3 और 2.97.4 के बीच पैच अंतर (diff) की तुलना करें। |
| बिना प्रमाणीकरण के iframe पथ तक पहुंचा जा सकता है। | MapPress `template_redirect` पंजीकृत करता है जब `$_GET['mappress']` मौजूद होता है। | बिना लॉग इन किए ब्राउज़र से `/?mappress=embed...` का अनुरोध करें। |
| iframe पथ अनुरोध से मानचित्र विशेषताओं को पढ़ता है। | `template_redirect()` `$_GET` को मानचित्र तर्कों में मैप करता है और iframe रेंडरर को कॉल करता है। | `mappress.php` का निरीक्षण करें और मैन्युअल URL को पुन: उत्पन्न करें। |
| कमजोर लक्ष्य `name` के माध्यम से विशेषता इंजेक्शन की अनुमति देता है। | तैयार किया गया नाम मान बिना उद्धरण वाले `id` विशेषता से बाहर निकल सकता है और `onclick=alert(1)` बन सकता है। | कमजोर मैन्युअल URL खोलें और रेंडर किए गए MapPress घटक पर क्लिक करें। |
| पैच किया गया लक्ष्य परीक्षण की गई विशेषता इंजेक्शन व्यवहार को अवरुद्ध करता है। | पैच किया गया आउटपुट पूरे पेलोड को उद्धृत `id` विशेषता के अंदर रखता है। | पैच किए गए मैन्युअल URL खोलें और रेंडर किए गए MapPress घटक पर क्लिक करें। |
## धारणाएँ और अज्ञात
यह लैब MapPress 2.97.3 को कमजोर तुलना लक्ष्य के रूप में उपयोग करती है क्योंकि सार्वजनिक सलाहकार 2.97.3 तक के संस्करणों को प्रभावित बताते हैं, और स्रोत अंतर उस संस्करण में कमजोर बिना उद्धरण वाली विशेषता रेंडरिंग दिखाता है।
यह लैब MapPress 2.97.4 को पैच किए गए तुलना लक्ष्य के रूप में उपयोग करती है क्योंकि सार्वजनिक सलाहकार 2.97.4 को फिक्स्ड संस्करण के रूप में पहचानते हैं, और आधिकारिक चेंजलॉग कहता है कि iframe पथ में एस्केपिंग जोड़ी गई थी।
परीक्षण किया गया कमजोर व्यवहार अप्रमाणित iframe रेंडरिंग पथ है:```text
GET /?mappress=embed&name=<crafted-value>
यह प्रयोगशाला एक हानिरहित अलर्ट पेलोड के मैनुअल ब्राउज़र निष्पादन पर केंद्रित है:```text name=cve56011 onclick=alert(1)
प्रयोगशाला संग्रहित वितरण श्रृंखला साबित करने का प्रयास नहीं करती है। कुछ सार्वजनिक सलाहकार वर्गीकरण इस कमजोरी को संग्रहित XSS के रूप में वर्गीकृत करते हैं। यह रिपॉजिटरी स्रोत-पुष्टि किए गए iframe रेंडरिंग सिंक और कमजोर-बनाम-पैच किए गए व्यवहार पर केंद्रित है, जिसे अप्रमाणित `mappress=embed` रूट के माध्यम से स्थानीय रूप से पुन: प्रस्तुत किया जा सकता है।
प्रयोगशाला प्रदर्शित नहीं करती है:
* संग्रहित पेलोड स्थिरता,
* वर्डप्रेस खाता समझौता,
* एडमिन सत्र चोरी,
* नॉन्स चोरी,
* बाहरी कॉलबैक,
* ब्लाइंड XSS संग्रह,
* क्रेडेंशियल चोरी,
* डेटाबेस डंपिंग,
* मैलवेयर,
* स्थिरता,
* या गैर-लैब सिस्टम के खिलाफ हमले।
मैनुअल ब्राउज़र सत्यापन सुरक्षा-संबंधित रेंडरिंग अंतर को साबित करता है:```text
MapPress 2.97.3:
crafted name value becomes executable onclick attribute
MapPress 2.97.4:
crafted name value remains inside the quoted id attribute
CVE-2026-56011 का मूल कारण मैप name मान के लिए गलत आउटपुट एन्कोडिंग है जब MapPress iframe मैप आउटपुट पथ के अंदर एक वेब कम्पोनेंट रेंडर करता है।