เกี่ยวกับช่องโหว่ของ Amasty RMA Extension
ระหว่างการตรวจสอบความปลอดภัย (security audit) กับลูกค้าที่ใช้ Magento วิศวกรของเราได้ค้นพบช่องโหว่วิกฤติหลายประการใน Amasty RMA extension ช่องโหว่แรกอนุญาตให้แฮกเกอร์อัปโหลดไฟล์ที่เป็นอันตรายขึ้นบนเซิร์ฟเวอร์ เนื่องจากไฟล์ PHP ก็สามารถอัปโหลดได้ แฮกเกอร์จึงสามารถอัปโหลด malicious shells เช่น c99, r57, anishell ไปยังเซิร์ฟเวอร์ได้ง่าย
หากไม่มีการตรวจสอบเพิ่มเติม แฮกเกอร์จะได้ควบคุมเซิร์ฟเวอร์ทั้งหมดโดยใช้ช่องโหว่นี้ ช่องโหว่อีกประการหนึ่ง ซึ่งพบได้ในบางเว็บไซต์ที่ใช้ RMA เท่านั้น อนุญาตให้แฮกเกอร์ดาวน์โหลดไดเรกทอรีใดๆ จากเซิร์ฟเวอร์ได้
ด้วยข้อมูลบางส่วนเกี่ยวกับเว็บแอปพลิเคชัน แฮกเกอร์สามารถดาวน์โหลดไฟล์สำคัญจากเซิร์ฟเวอร์ได้
รายละเอียดของช่องโหว่
- การอัปโหลดไฟล์อันตราย (Malicious File Upload): พื้นที่อัปโหลดสามารถถูก exploit โดยแฮกเกอร์เพื่ออัปโหลดไฟล์อันตราย ได้ทดลองอัปโหลด PHP shell สำเร็จ นั่นคือเหตุผลที่ การรักษาความปลอดภัยการอัปโหลดไฟล์ Magento จึงสำคัญมาก ดูภาพด้านล่าง:

- Directory Traversal / File Download: หากส่ง request ดังภาพด้านล่าง ไฟล์บนเซิร์ฟเวอร์สามารถถูกดาวน์โหลดได้ สำหรับไฟล์ทั่วไปอย่าง .htaccess ที่มีอยู่บนเซิร์ฟเวอร์เกือบทุกตัว แฮกเกอร์สามารถเดาและดาวน์โหลดได้ง่าย อย่างไรก็ตาม ลูกค้าของเราที่ใช้ Magento 1.9 ถูกโจมตีได้ แต่ reproduce บนเวอร์ชันอื่นไม่ได้

ผลกระทบของช่องโหว่ Magento RMA
- เซิร์ฟเวอร์อาจถูกควบคุมทั้งหมด (complete server compromise)
- แฮกเกอร์สามารถดาวน์โหลดไฟล์เซิร์ฟเวอร์ได้
- อาจมีการโจมตีเป้าหมายเฉพาะเจาะจงต่อผู้ใช้ปลายทาง/แอดมิน
Timeline
ทีม Amasty ตอบสนองและแก้ไขช่องโหว่ได้อย่างรวดเร็ว เราได้รับการตอบกลับจาก Kirill ผู้จัดการผลิตภัณฑ์ RMA plugin อย่างรวดเร็ว และ patch ถูกปล่อยออกมาภายในไม่กี่วัน
Magento Secure File Upload
การรักษาความปลอดภัยการอัปโหลดไฟล์ Magento เป็นเรื่องสำคัญมาก เนื่องจากพื้นที่อัปโหลดสามารถถูก exploit โดยแฮกเกอร์เพื่ออัปโหลดไฟล์อันตราย เราได้ทดลองอัปโหลด PHP shell สำเร็จแล้ว