PrestaShop เป็น Open-Source E-commerce Solution ที่ได้รับความนิยมในยุโรป และละตินอเมริกา ซึ่งมีผู้ค้าขายออนไลน์กว่า 300,000 รายทั่วโลกที่ใช้งาน ซึ่งผู้โจมตีได้ใช้ประโยชน์จากช่องโหว่ Zero-day บน platform ดังกล่าว เพื่อใส่โค้ด Skimmer ที่เป็นอันตราย ที่ออกแบบมาเพื่อขโมยข้อมูลที่มีความสำคัญ
เป้าหมายของการใช้ประโยชน์จากช่องโหว่นี้คือการติดตั้งโค้ดที่เป็นอันตรายที่มีความสามารถในการขโมยข้อมูลการชำระเงินจากลูกค้าที่ใส่ข้อมูลในหน้าชำระเงิน โดยเป้าหมายหลัก ๆ ส่วนใหญ่จะเป็นร้านค้าที่ใช้ software เวอร์ชั่นเก่า ๆ หรือ 3rd party module ที่มีช่องโหว่
ช่องโหว่มีหมายเลข CVE-2022-36408 ที่เกิดปัญหาจากการจัดการกับ Input ที่ผิดปกติ หรือไม่รู้จัก จนนำไปสู่การโจมตีในรูปแบบ SQL Injection ที่จะทำให้ผู้ผู้โจมตีสามารถแทรก หรือแก้ไขคำสั่ง SQL ได้
ลักษณะการโจมตี
จากการตรวจสอบเกี่ยวกับช่องโหว่จากทาง PrestaShop คาดว่าผู้โจมตีอาจจะใช้คุณสมบัติการจัดเก็บแคช MySQL Smarty มาเป็นส่วนหนึ่งของช่องทางในการโจมตี ซึ่งคุณลักษณะนี้จะไม่ค่อยได้ใช้งาน และจะถูกปิดโดยค่า Defualt อยู่แล้ว แต่ผู้โจมตีจะสามารถสั่งให้เปิดขึ้นมาใช้งานได้
ในการโจมตีผู้โจมตีจะทำการหาร้านค้าออนไลน์ที่มีช่องโหว่ หรือใช้งาน PrestaShop ที่เป็นเวอร์ชั่นเก่า เพื่อใช้ช่องโหว่ในการโจมตีแบบ SQL Injection
- ในขั้นแรกนั้นผู้โจมตีจะทำการส่งคำขอ POST ไปที่ระบบปลายทางที่มีช่องโหว่
- จากนั้นจะทำการส่ง GET Request ไปยังหน้าแรกโดยไม่มี Parameter ทำให้ไฟล์ PHP ชื่อ blm.php ถูกสร้างขึ้นมาที่ Root Directory ของร้านค้าออนไลน์
- หลังจากนั้นพวกเขาก็จะมีการส่ง GET Request อีกครั้งไปที่ไฟล์ blm.php เพื่อให้พวกเขาสามารถดำเนินการตามคำสั่งได้
- หลังจากที่เข้าควบคุมร้านค้าออนไลน์ได้สำเร็จ ก็จะทำการ Injection แบบฟอร์มการชำระเงินปลอมที่สร้างขึ้น ไปที่หน้าการชำระเงิน ทำให้ลูกค้าของร้านค้าป้อนข้อมูลบัตรเครดิตในแบบฟอร์มปลอมที่ถูกสร้างขึ้น และส่งไปยังผู้โจมตีโดยลูกค้าไม่รู้ตัว
- ถึงแม้ว่าการโจมตี้นี้จะเหมือนเป็นรูปแบบทั่ว ๆ ไป แต่ผู้โจมตีอาจจะใช้ชื่ออื่น ๆ ในการวางไฟล์อื่น หรือแก้ไขส่วนอื่น ๆ ของซอฟต์แวร์ และวางโค้ดที่เป็นอันตรายไว้ที่ไหนสักแห่ง หรือแม้แต่ลบร่องรอยเมื่อทำการโจมตีสำเร็จแล้ว
คำแนะนำ
- ทำการอัปเดต PrestaShop เป็น Version 1.7.8.7
- หากยังไม่ได้ทำการแพตซ์ แนะนำให้ทำการปิดการใช้งานคุณสมบัตินี้ในโค้ดของ PrestaShop ดังนี้
- ให้ทำการค้นหาไฟล์ config/smarty.config.inc.php ในการติดตั้ง PrestaShop และลบบรรทัดที่ 43-46 (PrestaShop 1.7) หรือ 40-43 (PrestaShop 1.6)
if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') { include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php'; $smarty->caching_type = 'mysql'; }
Version ที่ได้รับผลกระทบ
PrestaShop Version ที่ต่ำกว่า 1.7.8.2
ที่มา : thehackernews, build.prestashop, vuldb.com
You must be logged in to post a comment.