แกะรอย WordPress injection Site redirect “admin-ajax.php?action exploit modify siteurl somelandingpage”

ในสัปดาห์ที่ผ่านมาหลายเว็บไซต์โดน injection ทำ redirect ดูเหมือนจะเป็นการโจมตีจากแฮกเกอร์แต่จริงๆ แล้วช่องโหว่มาจากปลั๊กอิน (มีปลั๊กอินอะไรบ้าง รายละเอียดอยู่ด้านล่าง)

ช่องโหว่นี้น่าจะโดนกันเยอะครับ ซึ่งแนวทางการแก้ไขก็แตกต่างกันออกไป บางคนก็ restore เว็บไซต์กันเลยทีเดียวเนื่องจากทำได้รวดเร็ว กู้เว็บไซต์ให้กับมาให้บริการได้เร็ว เรามาแกะรอย หาแท้จริงเกิดจากอะไร? หรือเกิดขึ้นได้อย่างไร ??

ส่วนมากปัญหาเรื่อง redirect เราก็คิดว่าน่าจะโดน AdWare หรือ FTP Client ติดไวรัส พออัพโหลดไฟล์ขึ้น Server ทำให้ติด Adware แก้ไข URLซึ่งปกติก็จะ redirect ไปเว็บโป้ต่างๆ เป็นต้น (Thank you for redirect 555)

เคสในตัวอย่างนี้เปิดเว็บไซต์แล้ว redirect ไปปลายทาง
// somelandingpage.com/3gGykjDJ?frm=script
ขั้นตอนการตรวจสอบสิ่งที่เกิดขึ้น และความผิดพลาดที่พบ

1. ตรวจสอบ log http access

ให้ดาวน์โหลดไฟล์ raw log จาก cPanel หรือ DirectAdmin (กรณีใช้บริการ Shared Hositng)ส่วนใครที่ใช้ VPS ก็สามารถ SSH เข้าเครื่อง Server ดู http access ได้เลย

2. ตรวจสอบ IP address จากต้องทางที่น่าสงสัย

ให้ Search ข้อความหรือ url ที่มีการ rediret ไป จากนั้นดู Path location ของปลั๊กอินเราก็จะรู้ว่าช่องโหว่ของปลั๊กอินอะไร

หากทราบชื่อปลั๊กอินแล้วก็ให้ทำการอัพเดต หากนักพัฒนายังไม่อัพเดตปลั๊กอิน เราก็แก้ไข code เองได้เลยครับ (ของฟรี ต้องเข้าใจ 555)

ตัวอย่าง ปลั๊กอินที่พบ
remove-add-to-cart-woocommerce
woo-inquire-us-and-disable-add-to-cart-button

วิธีการแก้ไข

1. อัพเดต plugin
2. แก้ไข code
ค้นหาคำว่า “set_db_option”
/www/wp-content/plugins #  grep -r “set_db_option” *


remove-add-to-cart-woocommerce/freemius/templates/debug.php
remove-add-to-cart-woocommerce/freemius/includes/class-freemius.php

สำหรับปลั๊กอินอื่นๆ สามารถดูได้จาก GitHub เพื่ออัพเดต code ได้จากลิงก์ด้านล่างนี้
ตรวจสอบรายชื่อปลั๊กอินที่ทาง Plugin Vulnerabilities แจ้งผู้พัฒนาปลั๊กอินไปบ้างแล้ว

(Updated March 8, 2019)

วิธีป้องกัน

1. เลือกใช้ปลั๊กอินพรีเมียม (ซื้อเถอะ)
2. อัพเดตปลั๊กอินอยู่เสมอ
3. ติดตั้งปลั๊กอินเท่าที่ใช้งาน