ทำอย่างไรเมื่อ WordPress ถูก Hack

เนื่องด้วยบทความนี้จำเป็นต้องพัฒนาเรื่อยๆ ตามความซับซ้อนของการเจาะระบบ ทำให้การแก้ไขตามเนื้อหาในบทความนี้อาจไม่ครอบคลุมกับอาการที่เกิดขึ้นได้สำหรับทุกเว็บไซต์
เนื้อหานี้ถูกแก้ไขครั้งล่าสุดเมื่อ 24/11/2014

WordPress เป็น Content Management System ที่เป็นที่นิยมแพร่หลายมาก จึงทำให้ตกเป็นเป้าหมายสำคัญของ Hacker และผู้ไม่ประสงค์ดีเช่นเดียวกันแนวทางการแก้ไข กรุณาทำตามทีละขั้นตอน ทุกขั้นตอนสำคัญทั้งหมดไม่สามารถข้ามได้นะครับ

1. ทำ Backup และดาวน์โหลดไฟล์ Backup เก็บไว้ที่เครื่องที่ท่านใช้งาน เพื่อให้มั่นใจว่าหากแก้ไขผิดพลาดในจุดไหนก็ยังสามารถย้อนกลับกระบวนการมายัง ณ เวลานี้ได้
อ้างอิง :

2. Download ไฟล์ของเว็บไซต์ทั้งหมดผ่าน FTP เก็บไว้ที่เครื่องท่านอีกชุด เราจะใช้ไฟล์นี้เพื่ออ้างอิงไฟล์ที่ถูกเจาะ หรือวาง Backdoor ไว้ข้างใน พร้อมทั้งใช้เพื่อการ Restore ข้อมูลบางส่วน

3. ทำการ Disable Plugin และส่วนเสริมทั้งหมดที่ใช้งาน

wordpress-hack-001

4. ทำการ Update WordPress ให้เป็น Version ล่าสุด

wordpress-hacrk-002

5. เปลี่ยน Theme ที่ใช้งานเป็น Theme มาตรฐาน ยกตัวอย่าง ขณะที่ผมเขียนแนวทางการแก้ไขนี้เป็นปี 2014 ก็ให้ใช้ Theme Twenty Fourteen ถ้าเป็นปีนี (ปี 2023)ใช้ Theme Twenty Twenty-Three ครับ

wordpress-hack-003

6. move ไฟล์ทั้งหมด และทำการ uploads ไฟล์ที่ที่อยู่ในตำแหน่ง wp-content/upload เก็บไว้ จากนั้นทำการ copy ข้อมูล wp-config.php ในส่วนของ database name, database user, Database Password และ Table prefix เก็บไว้

จากรูปภาพที่ยกตัวอย่างนี้เป็นภาพ File Managerจาก Control Panel Plesk

wordpress-hack

7. ดาวน์โหลดไฟล์ติดตั้ง WordPress ใหม่จากเว็บไซต์หลักของ WordPress โดยตรงที่ https://wordpress.org/download/

8. ทำการ Extract ไฟล์แล้ว Upload ไฟล์ของ WordPress ในข้อ 7 กลับขึ้นยัง Server

9. เปลี่ยนรหัสผ่านฐานข้อมูลที่ใช้งานสำหรับเว็บไซต์นี้ โดยดูวิธีการเปลี่ยนได้ที่ วิธีเปลี่ยนรหัสผ่าน WordPress ใน phpMyAdmin

10. เปิดไฟล์ wp-config.php ที่ติดตั้งในข้อ 2 คัดลอก database name + database user และ Database Password เก็บไว้

11. เปลี่ยนชื่อไฟล์ wp-config-sample.php ที่ Upload เข้าไปใข้อ 8 เปลี่ยนเป็น wp-config.php แล้วนำรายละเอียดการเชื่อมต่อฐานข้อมูลจากข้อ 10 เข้าบันทึกในไฟล์ wp-config.php

12. สร้างไฟล์ secert key ใหม่ ที่ https://api.wordpress.org/secret-key/1.1/salt/ จากนั้นนำไปใส่ในไฟล์ wp-config.php ที่

 define('SECURE_AUTH_KEY', 'put your unique phrase here');
 define('LOGGED_IN_KEY', 'put your unique phrase here');
 define('NONCE_KEY', 'put your unique phrase here');
 define('AUTH_SALT', 'put your unique phrase here');
 define('SECURE_AUTH_SALT', 'put your unique phrase here');
 define('LOGGED_IN_SALT', 'put your unique phrase here');
 define('NONCE_SALT', 'put your unique phrase here');

13. ตรวจสอบไฟล์ทั้งหมดใน wp-content/upload ที่ Download เก็บไว้ในข้อ 2 ดูว่ามีไฟล์แปลกปลอม หรือไฟล์ที่เป็น script หรือไม่ ขั้นตอนนี้เป็นขั้นตอนที่สำคัญมาก ผมอยากให้ค่อยๆ ไล่ดูทีละแฟ้ม เลยครับดูว่าไฟล์ไหนชื่อไม่คุ้น นามสกุลแปลกๆ ให้ลบออกให้หมด เมื่อแน่ใจแล้วว่าไม่มี script หรือไฟล์แปลกปลอมแน่นอนแล้วให้ Upload กลับขึ้นมายัง Server

wordpress-hack-006

14. ถึงขั้นตอนนี้เว็บไซต์จะเปิดใช้งานได้และสามารถเรียกชมได้ปกติแล้ว แต่หน้าตาเว็บไซต์จะยังไม่เหมือนเดิม

15 เปลี่ยนรหัสผ่านทั้งหมดในเว็บไต์นี้ และรหัสผ่านทั้งหมดที่เกี่ยวข้องกับ Website นี้ยกตัวอย่างรหัสผ่าน admin email ถ้าเป็นรหัสผ่านเดียวกันให้เปลี่ยนด้วยครับ แนะนำให้ไปตั้งค่ารหัสผ่านที่ hostatom password generator

wordpress-hack-004

16. ดาวน์โหลด theme, plugin และส่วนเสริมมาติดตั้งใหม่ ห้ามใช้ไฟล์ที่เก็บไว้ในข้อ 2 เด็ดขาดเนื่องจากอาจมี backdoor แฝงใน script ได้ (กรุณาดาวน์โหลด theme, plugin และส่วนเสริมจากแหล่งที่น่าเชื่อที่เท่านั้น พวก nulled และ crack ล้วนแต่มี backdoor ครับ)

17. ติดตั้ง plugin ด้านความปลอดภัย เพื่อตรวจสอบ code แปลกปลอมใน database และปิดช่องโหว่ในระบบที่มีอยู่ หรืออาจถูกค้นพบในอนาคต
เราขอแนะนำ 2 ตัวนี้ครับ เลือกตัวใดตัวนึง
https://wordpress.org/plugins/better-wp-security/
https://wordpress.org/plugins/sucuri-scanner/

Was this article helpful?

Related Articles