WooCommerce में Abandoned Cart प्लगइन का दुरुपयोग - तुरंत अपडेट करें
हैकर्स WooCommerce-abandoned-cart प्लगइन में XSS भेद्यता का फायदा उठाकर WordPress-आधारित साइट्स पर हमला कर रहे हैं, जिससे वे बैकडोर लगा रहे हैं और संवेदनशील साइट्स को अपने कब्जे में ले रहे हैं।
WooCommerce-abandoned-cart प्लगइन, WooCommerce साइट मालिकों को छोड़े गए शॉपिंग कार्ट को ट्रैक करने की सुविधा देता है ताकि उन बिक्री को पुनर्प्राप्त किया जा सके।
गेस्ट यूजर इनपुट और आउटपुट पर सैनिटाइजेशन की कमी के कारण, हमलावर कई डेटा फील्ड्स में दुर्भावनापूर्ण JavaScript इंजेक्ट कर सकते हैं, जो तब एक्जीक्यूट होता है जब एडमिनिस्ट्रेटर विशेषाधिकारों वाला कोई लॉग्ड-इन यूजर छोड़े गए कार्ट की सूची देखता है।
वर्तमान में, WooCommerce-abandoned-cart या WooCommerce-abandoned-cart-pro का उपयोग करने वाली WordPress साइट्स को तुरंत नवीनतम उपलब्ध संस्करण में अपडेट करने की सलाह दी जाती है। Astra WAF का उपयोग करने वाली WordPress साइट्स, फ़ायरवॉल के अंतर्निहित XSS सुरक्षा के कारण इस हमले से सुरक्षित हैं।
Astra के बिना प्रभावित यूजर्स को अपनी WordPress साइट्स की अखंडता की पुष्टि के लिए साइट सुरक्षा ऑडिट पर विचार करने की सलाह दी जाती है।
Abandoned Cart प्लगइन WordPress में XSS भेद्यता का विवरण
जब एक अनऑथेंटिकेटेड यूजर उत्पादों को अपने शॉपिंग कार्ट में जोड़ता है और चेकआउट की ओर बढ़ता है, तो woocommerce-abandoned-cart का गेस्ट इनपुट काम में आता है।
save_data AJAX एक्शन, गेस्ट द्वारा दर्ज किए गए डेटा को प्लगइन पर वापस भेजता है। इसका उद्देश्य है कि अगर चेकआउट प्रक्रिया किसी भी कारण से पूरी नहीं होती है, तो प्लगइन द्वारा दुकान मालिकों को उनके डैशबोर्ड में अलर्ट किया जाएगा।

इन AJAX अनुरोधों ($_POST फील्ड्स) के इनपुट सैनिटाइजेशन को उन्हें संभालने वाले फ़ंक्शन द्वारा नहीं किया जाता है। billing_first_name, billing_last_name और billing_company कुछ ऐसे शॉपर डेटा फील्ड्स हैं जो यूजर से प्राप्त होते ही सीधे स्टोर हो जाते हैं। इस अनुरोध का डेटा फिर डेटाबेस में स्टोर होता है और WordPress डैशबोर्ड से एडमिनिस्ट्रेटर द्वारा एक्सेस किया जा सकता है। ग्राहक जानकारी, व्यक्तिगत कार्ट, ऑर्डर टोटल्स, और ऐसी जानकारी डैशबोर्ड से एडमिनिस्ट्रेटर को दिखाई देती है।

एडमिनिस्ट्रेटर के ब्राउज़र में इस डेटा को रेंडर करते समय कोई आउटपुट सैनिटाइजेशन नहीं किया जाता है। चूंकि "कस्टमर" फील्ड एक सिंगल फील्ड है जो आउटपुट टेबल में billing_first_name और billing_last_name फील्ड्स को जोड़कर बनता है, इसलिए यह इस फ्लो का फायदा उठाने वाले हैकर्स का टारगेट बन जाता है।
हैकर्स Abandoned Cart प्लगइन में इस भेद्यता का फायदा कैसे उठा रहे हैं
हैकर्स WordPress WooCommerce पर आधारित स्टोर्स पर हमला कर रहे हैं ताकि विकृत नामों वाले उत्पादों से भरे शॉपिंग कार्ट बनाए जा सकें।
कार्ट के किसी भी फील्ड में एक्सप्लॉइट कोड डालकर साइट छोड़ने पर, स्टोर का डेटाबेस इंसर्ट किए गए एक्सप्लॉइट कोड को स्टोर कर लेता है।
हैकर द्वारा डाला गया यह एक्सप्लॉइट कोड तब एक्जीक्यूट होता है जब संबंधित बैकएंड पेज एडमिनिस्ट्रेटर द्वारा छोड़े गए कार्ट सूची देखने के लिए एक्सेस किए जाने पर लोड होता है।
Wordfence द्वारा देखे गए हमलों में, एक्सप्लॉइट कोड द्वारा एक bit.ly लिंक का उपयोग JavaScript फ़ाइल लोड करने के लिए किया गया था। जिन साइट्स पर संवेदनशील प्लगइन सक्रिय था, वहां कोड ने दो अलग-अलग बैकडोर बनाने की कोशिश की।
जहां पहला बैकडोर हैकर्स द्वारा बनाया गया एक नया एडमिनिस्ट्रेटर अकाउंट है, जिसका यूजरनेम "woouser" है और Mailinator पर होस्ट किया गया ईमेल पता है, वहीं दूसरा बैकडोर एक चतुर तकनीक में है। यह वेबसाइट पर इंस्टॉल सभी प्लगइन्स को सूचीबद्ध करता है और पहले डिसेबल्ड प्लगइन को खोजता है। प्लगइन को फिर से इनेबल करने के बजाय, इसकी मुख्य फ़ाइल की सामग्री को एक स्क्रिप्ट से बदल दिया जाता है जो भविष्य में हैकर्स को आगे एक्सेस प्रदान करेगी।
दुर्भावनापूर्ण कमांड को हमलावर इस बैकडोर पर भेज सकते हैं, भले ही "woouser" अकाउंट हटा दिया गया हो, जब तक डिएक्टिवेटेड प्लगइन की फ़ाइलें डिस्क पर रहती हैं और वेब अनुरोधों द्वारा एक्सेस की जा सकती हैं।
प्रभाव:
इस दोष का प्रभाव साइट्स का SEO स्पैम के लिए उपयोग करने से लेकर हैकर्स द्वारा कार्ड स्किमर लगाने तक है।
Abandoned Cart प्लगइन एक्सप्लॉइट को ठीक करना
Abandoned Cart Lite for WooCommerce के संस्करण 5.2.0, जो 18 फरवरी, 2019 को जारी किया गया था, में एक फिक्स देखा गया जो इस एक्सप्लॉइट में हैकर्स द्वारा उपयोग किए गए XSS अटैक वेक्टर से निपटता था।
इस WordPress प्लगइन का उपयोग करने वाले सभी स्टोर मालिकों को अपने कंट्रोल पैनल पर एडमिन अकाउंट की सूची में किसी भी संदिग्ध प्रविष्टि की जांच करने के साथ-साथ अपनी साइट्स को अपडेट रखने की पुरजोर सिफारिश की जाती है। यह पूरी तरह संभव है कि हैकर्स ने "woouser" नाम को किसी और चीज़ में बदल दिया हो।
यह ध्यान दिया जाना चाहिए कि यह पैच इस दोष का पूर्ण समाधान नहीं है क्योंकि यह दूसरे बैकडोर या पूर्व-इंजेक्टेड स्क्रिप्ट्स से नहीं निपटता है। इसलिए, woocommerce-abandoned-cart या woocommerce-abandoned-cart-pro का उपयोग करने वाले स्टोर मालिकों के लिए सिफारिश है कि वे अपने डेटाबेस में किसी भी स्क्रिप्ट इंजेक्शन की जांच करें। जबकि समीक्षा की जाने वाली टेबल का नाम भिन्न हो सकता है, ac_guest_abandoned_cart_history नाम की टेबल वह जगह है जहां गेस्ट शॉपर डेटा स्थित हो सकता है। इसके अतिरिक्त, क्लीनअप के हिस्से के रूप में सभी अनधिकृत एडमिन अकाउंट्स को हटा दिया जाना चाहिए।