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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pyrocms-ssti-fix — CVE-2023-29689 के लिए एक ड्रॉप-इन फिक्स - PyroCMS में SSTI, एक कस्टम Twig Sandbox कार्यान्वयन के माध्यम से | Kitploit
उपकरण/GitHubGitHub/ysaxon/pyrocms-ssti-fix
रक्षात्मक उपकरणभेद्यता विश्लेषणकोड विश्लेषणवेब एप्लिकेशन शोषणवेब सुरक्षागलत कॉन्फ़िगरेशन
GitHubysaxon/pyrocms-ssti-fix

pyrocms-ssti-fix

CVE-2023-29689 के लिए एक ड्रॉप-इन फिक्स - PyroCMS में SSTI, एक कस्टम Twig Sandbox कार्यान्वयन के माध्यम से

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

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

सभी देखें →

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

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

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

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

Packagist Version

🛡️ PyroCMS SSTI सुधार

CVE-2023-29689 के लिए ड्रॉप-इन सुरक्षा सुधार - PyroCMS 3.9 में सर्वर-साइड टेम्पलेट इंजेक्शन जो रिमोट कोड निष्पादन की ओर ले जाता है।

समस्या

PyroCMS एडमिन उपयोगकर्ताओं को डेटाबेस में संग्रहीत टेम्पलेट संपादित करने की अनुमति देता है। सैंडबॉक्सिंग के बिना, एडमिन एक्सेस वाले हमलावर दुर्भावनापूर्ण Twig कोड इंजेक्ट कर सकते हैं:

root@kitploit:~
{{['id']|map('system')|join}}

यह मनमाने सिस्टम कमांड निष्पादित करता है। अपस्ट्रीम अनुरक्षक इसे "जैसा इरादा था वैसा काम करना" मानते हैं क्योंकि एडमिन उपयोगकर्ता विश्वसनीय होते हैं - लेकिन मल्टी-टेनेंट या एंटरप्राइज़ वातावरण में, "एडमिन" ≠ "शेल एक्सेस के साथ विश्वसनीय"।

समाधान

यह पैकेज स्वचालित रूप से उपयोगकर्ता-संपादन योग्य टेम्पलेट को सैंडबॉक्स करता है जबकि वैध थीम/ऐडऑन टेम्पलेट को अप्रतिबंधित छोड़ता है। यह Twig के SourcePolicyInterface (इस पैकेज के लेखक द्वारा अपस्ट्रीम में योगदानित) का उपयोग करके चुनिंदा रूप से प्रतिबंध लागू करता है।

स्थापना

root@kitploit:~
composer require ysaxon/pyrocms-ssti-fix

दुर्भाग्य से, PyroCMS द्वारा ऑटोडिस्कवरी को अक्षम करने के कारण, आपको सेवा प्रदाता स्वयं जोड़ना होगा।

आप ऐसा इसके साथ कर सकते हैं:

root@kitploit:~
sed -i "/App\\\Providers\\\AppServiceProvider::class,/a \        YSaxon\\\PyroCmsSstiFix\\\SandboxServiceProvider::class," config/app.php

आवश्यकताएँ

  • PHP 7.4+ या 8.0+
  • Twig 2.16+ या 3.9+ (SourcePolicyInterface समर्थन के लिए)
  • Laravel 6.0+ / PyroCMS 3.x

यह कैसे काम करता है

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                     Twig रेंडर अनुरोध                        │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    StorageSourcePolicy                       │
│                                                              │
│  क्या टेम्पलेट संग्रहण पथ (डेटाबेस/उपयोगकर्ता-संपादन योग्य)? │
│                                                              │
│     हाँ ──────────────────►  सैंडबॉक्स सक्षम करें             │
│      │                       - अवरुद्ध: map, filter, reduce    │
│      │                       - अवरुद्ध: खतरनाक टैग            │
│      │                       - सुरक्षित संचालनों की अनुमति सूची │
│                                                              │
│     नहीं ──────────────────►  कोई सैंडबॉक्स नहीं               │
│                              (थीम/ऐडऑन टेम्पलेट सामान्य रूप से  │
│                               काम करते हैं)                  │
└─────────────────────────────────────────────────────────────┘

कॉन्फ़िगरेशन (वैकल्पिक)

डिफ़ॉल्ट सेटिंग्स सुरक्षित हैं और अधिकांश स्थापनाओं के लिए काम करती हैं। अनुकूलित करने के लिए:

root@kitploit:~
php artisan vendor:publish --tag=pyrocms-ssti-fix-config

यह config/pyrocms-ssti-fix.php बनाता है:

root@kitploit:~
return [
    // मास्टर स्विच
    'enabled' => env('PYROCMS_SSTI_FIX_ENABLED', true),

    // स्वतः-पता लगाए गए संग्रहण पथ को ओवरराइड करें
    'storage_path' => env('PYROCMS_SSTI_FIX_STORAGE_PATH', null),

    // अनुमत टैग/फ़िल्टर/फ़ंक्शन/विधियों/गुणों को अनुकूलित करें
    'policy' => [
        'tags' => [SecurityPolicyDefaults::INCLUDE_DEFAULTS],
        'filters' => [SecurityPolicyDefaults::INCLUDE_DEFAULTS],
        // ... पूर्ण विकल्पों के लिए कॉन्फ़िग फ़ाइल देखें
    ],
];

क्या अवरुद्ध है

डिफ़ॉल्ट सुरक्षा नीति सैंडबॉक्सित टेम्पलेट में इन खतरनाक सुविधाओं को अवरुद्ध करती है:

फ़िल्टर (RCE वेक्टर)

  • map - {{['cmd']|map('system')}} शेल कमांड निष्पादित करता है
  • filter - मनमाने PHP फ़ंक्शन कॉल कर सकता है
  • reduce - मनमाने PHP फ़ंक्शन कॉल कर सकता है

टैग (सम्मिलन हमले)

  • include, extends, block, macro, import, embed, use

फ़ंक्शन

  • source - मनमानी फ़ाइल सामग्री पढ़ता है
  • include - अन्य टेम्पलेट शामिल करता है
  • template_from_string - स्ट्रिंग से टेम्पलेट बनाता है

क्या अनुमत है

सैंडबॉक्सित टेम्पलेट में सुरक्षित संचालन उपलब्ध रहते हैं:

root@kitploit:~
{# चर #}
{{ entry.title }}
{{ user.name|upper }}

{# लूप और सशर्त #}
{% for item in items %}
    {% if item.active %}
        {{ item.name }}
    {% endif %}
{% endfor %}

{# सुरक्षित फ़िल्टर #}
{{ text|escape }}
{{ date|date('Y-m-d') }}
{{ items|length }}
{{ name|lower|trim }}

{# सुरक्षित फ़ंक्शन #}
{{ max(a, b) }}
{{ random(['red', 'blue', 'green']) }}

अनुमति सूची का विस्तार

यदि आपके एडमिन टेम्पलेट को वैध रूप से अतिरिक्त सुविधाओं की आवश्यकता है:

root@kitploit:~
// config/pyrocms-ssti-fix.php
'policy' => [
    'filters' => [
        SecurityPolicyDefaults::INCLUDE_DEFAULTS,
        'my_custom_filter',  // विशिष्ट फ़िल्टर जोड़ें
    ],
    'methods' => [
        SecurityPolicyDefaults::INCLUDE_DEFAULTS,
        'App\Models\Post' => ['getTitle', 'getSummary'],
    ],
],

सुधार का परीक्षण

स्थापना के बाद, सुनिश्चित करें कि शोषण अवरुद्ध है:

  1. PyroCMS एडमिन → उपयोगकर्ता → भूमिकाओं पर जाएं
  2. किसी भूमिका के विवरण फ़ील्ड को संपादित करें
  3. दर्ज करें: {{['id']|map('system')|join}}
  4. सहेजें और देखें

सुधार से पहले: id कमांड का आउटपुट दिखाता है (या क्रैश होता है) सुधार के बाद: त्रुटि दिखाता है या [रेंडरिंग विफल: फ़िल्टर "map" की अनुमति नहीं है।]

समस्या निवारण

"कंटेनर में Twig नहीं मिला"

पैकेज Twig नहीं ढूंढ सका। इसका सामान्यतः अर्थ है:

  • PyroCMS/streams-platform पूरी तरह से लोड नहीं हुआ है
  • आप PyroCMS वातावरण में नहीं चल रहे हैं

विवरण देखने के लिए डीबग मोड सक्षम करें:

root@kitploit:~
PYROCMS_SSTI_FIX_DEBUG=true

वैध टेम्पलेट टूट रहे हैं

यदि एडमिन-संपादन योग्य टेम्पलेट ऐसी सुविधाओं का उपयोग करते हैं जो अब अवरुद्ध हैं:

  1. लॉग में जांचें कि कौन सी सुविधा अवरुद्ध हुई
  2. इसे कॉन्फ़िग में अनुमति सूची में जोड़ें (यदि सुरक्षित हो)
  3. या टेम्पलेट को अनुमत सुविधाओं का उपयोग करने के लिए रीफ़ैक्टर करें

प्रदर्शन संबंधी चिंताएं

पैकेज सभी पथ जाँच और विधि/गुण लुकअप को कैश करता है। auto मोड में, केवल संग्रहण-पथ टेम्पलेट सैंडबॉक्स ओवरहेड वहन करते हैं।

सुरक्षा नोट्स

  • यह पैकेज अंतर्निहित आर्किटेक्चर समस्या (Twig द्वारा उपयोगकर्ता इनपुट रेंडर करना) को ठीक नहीं करता
  • यह शोषण को कम करता है कि सैंडबॉक्सित टेम्पलेट क्या कर सकते हैं
  • एडमिन उपयोगकर्ता अभी भी कष्टप्रद टेम्पलेट बना सकते हैं; वे केवल RCE प्राप्त नहीं कर सकते
  • गहराई में रक्षा के लिए अतिरिक्त सख्ती (WAF नियम, CSP, आदि) पर विचार करें

क्रेडिट

  • Yaakov Saxon - पैकेज लेखक, Twig में SourcePolicyInterface योगदानकर्ता
  • Twig PR #3893 - चयनात्मक सैंडबॉक्स सक्षम करने वाला अपस्ट्रीम योगदान

लाइसेंस

MIT लाइसेंस - LICENSE फ़ाइल देखें।

संबंधित

  • CVE-2023-29689 - NVD प्रविष्टि
  • GHSA-w7vm-4v3j-vgpw - GitHub सलाह
  • Twig सैंडबॉक्स दस्तावेज़ीकरण
टूल डाउनलोड करें