แกะรอย 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)
- 404 to 301 (Fixed) – 100,000+ Installs
- Ad Blocker Notify Lite (Unfixed as of 2.2.3) – 10,000+ Installs
- Better Notifications for WordPress (Fixed) – 20,000+ Installs
- BuddyForms (Fixed) – 3,000+ Installs
- Coming Soon Blocks (Coming Soon Page and Maintenance Mode for WordPress Block Editor) (Fixed) – 40+ Installs
- Contact Form 7 Multi-Step Forms (Fixed) – 20,000+ Installs
- Contact Form 7 Skins (Fixed) – 30,000+ Installs
- Content Aware Sidebars (Fixed) – 40,000+ Installs
- Delete Duplicate Posts (Fixed) – 10,000+ Installs
- Easy Watermark (Fixed) – 30,000+ Installs
- Final Tiles Grid Gallery (Image Photo Gallery Final Tiles Grid) (Fixed) – 30,000+ Installs
- FooBox Image Lightbox (Fixed) – 100,000+ Installs
- FooGallery (Fixed) – 100,000+ Installs
- Glossary (Fixed) – 1,000+ Installs
- Ivory Search (Unfixed as of 4.2) – 20,000+ Installs
- Livemesh Addons for Beaver Builder (Fixed) – 2,000+ Installs
- Livemesh Addons for Elementor (Unfixed as of 2.5.2) – 50,000+ Installs
- Livemesh Addons for WPBakery Page Builder – (Unfixed as of 2.5.1) – 20,000+ Installs
- Livemesh SiteOrigin Widgets (Unfixed as of 2.5.1) – 30,000+ Installs
- Mobile Menu (WP Mobile Menu) (Fixed) – 50,000+ Installs
- NextGEN Gallery (Fixed) – 900,000+ Installs
- Popup Maker (Fixed) – 300,000+ Installs
- Post Snippets (Fixed) – 30,000+ Installs
- Remove WP Update Nags (Fixed) – 60+ Installs
- Salon Booking System (Fixed, but originally most recent venison 3.28.3, was vulnerable) – 5,000+ Installs
- Smart Variations Images for WooCommerce (Fixed) – 3,000+ Installs
- Stop User Enumeration (Fixed) – 30,000+ Installs
- Widgets for SiteOrigin (Unfixed as of 1.4.2) – 40,000+ Installs
- WooSquare (Fixed) – 1,000+ Installs
- WP Affiliate Disclosure (Fixed) – 100+ Installs
- WP fail2ban (Fixed) – 30,000+ Installs
- WP Security Audit Log (Fixed) – 80,000+ Installs
วิธีป้องกัน
1. เลือกใช้ปลั๊กอินพรีเมียม (ซื้อเถอะ)
2. อัพเดตปลั๊กอินอยู่เสมอ
3. ติดตั้งปลั๊กอินเท่าที่ใช้งาน