
สรุปคำตอบ
ไฟล์แปลกปลอมใน WordPress คือไฟล์ที่ไม่ได้มาจาก WordPress Core, Theme หรือ Plugin ที่คุณติดตั้งเอง มักเป็น Backdoor, Web Shell หรือโค้ดส่ง Spam และ Redirect ที่แฮกเกอร์ฝากไว้ วิธีเช็กเบื้องต้นคือเรียงไฟล์ตาม Last Modified ใน File Manager หาไฟล์ .php ในโฟลเดอร์ wp-content/uploads/ ซึ่งไม่ควรมีเลย และเปิดดูไฟล์ที่ใช้ eval() หรือ base64_decode() ถ้าเข้า SSH ได้ คำสั่ง wp core verify-checksums จะบอกได้แม่นที่สุดว่าไฟล์ไหนถูกแก้หรือเพิ่มเข้ามา
หนึ่งในสัญญาณเตือนแรกที่บอกว่าเว็บ WordPress อาจถูกแฮกหรือติดมัลแวร์ คือการพบ ไฟล์แปลกปลอม ที่ไม่ได้สร้างขึ้นเอง ซึ่งหลายครั้งเจ้าของเว็บไม่รู้ตัวจนกว่าโฮสต์จะแจ้ง หรือผู้เยี่ยมชมสังเกตเห็นพฤติกรรมผิดปกติ การตรวจเช็กไฟล์เบื้องต้นด้วยตัวเองจึงเป็นทักษะที่ทุกคนที่ดูแลเว็บ WordPress ควรมี เพื่อจับปัญหาได้ตั้งแต่เนิ่น ๆ ก่อนที่ความเสียหายจะลุกลาม หากยังไม่แน่ใจว่าเว็บของคุณมีอาการติดมัลแวร์หรือเปล่า ลองอ่านบทความนั้นควบคู่กันด้วย
ไฟล์แปลกปลอมคืออะไร และทำไมถึงอันตราย
ไฟล์แปลกปลอม (Suspicious Files) หมายถึงไฟล์ที่ไม่ได้มาจาก WordPress core, ธีม, หรือปลั๊กอินที่คุณติดตั้งเอง แต่ปรากฏอยู่ในโฟลเดอร์ของเว็บโดยไม่ทราบที่มา ไฟล์เหล่านี้มักถูกแฮกเกอร์ฝากไว้เพื่อใช้เป็น backdoor (ประตูลับ), web shell (สคริปต์ควบคุมเซิร์ฟเวอร์จากระยะไกล) หรือโค้ดส่ง spam/redirect ผู้เยี่ยมชมไปเว็บไม่พึงประสงค์
ไฟล์อันตรายเหล่านี้มักซ่อนตัวในรูปแบบต่าง ๆ เช่น
- ชื่อไฟล์ที่ดูเหมือนไฟล์ระบบ เช่น
wp-loginn.php,wp-config.bak,index2.php - ไฟล์
.phpที่แทรกอยู่ในโฟลเดอร์รูปภาพ/wp-content/uploads/ - ไฟล์ที่มีนามสกุลซ้อน เช่น
image.jpg.php - ไฟล์ชื่อสุ่ม เช่น
a3f9k2.phpหรือสตริงยาว ๆ ที่ไม่มีความหมาย

วิธีเช็กไฟล์แปลกปลอมผ่าน File Manager (cPanel)
วิธีที่เข้าถึงได้ง่ายที่สุดสำหรับคนที่ไม่คุ้นเคยกับ SSH คือใช้ File Manager ใน cPanel
- เข้า cPanel → File Manager → นำทางไปยัง
public_html(หรือโฟลเดอร์ที่ติดตั้ง WordPress) - คลิกที่หัวคอลัมน์ Last Modified เพื่อเรียงไฟล์จากใหม่ไปเก่า ไฟล์ที่ถูกแก้ไขหรือสร้างขึ้นในช่วงเวลาที่คุณไม่ได้แตะเว็บคือไฟล์ที่น่าสงสัย
- เข้าไปตรวจโฟลเดอร์
/wp-content/uploads/แล้วค้นหาไฟล์.phpหรือ.jsที่ไม่ควรอยู่ในโฟลเดอร์รูปภาพ - ใช้ฟีเจอร์ Search ของ File Manager ค้นหาไฟล์
*.phpทั้งหมดในโฟลเดอร์ uploads — ถ้าพบ ให้ถือว่าน่าสงสัยทันที
เมื่อพบไฟล์ที่ต้องการตรวจ ให้คลิก View หรือ Edit เพื่อดูเนื้อหา ถ้าเห็นโค้ดที่ถูก encode ด้วย base64_decode(), eval(), gzinflate(), หรือ str_rot13() ให้สันนิษฐานว่าเป็นโค้ดอันตราย
ใช้ Plugin ตรวจสอบไฟล์เบื้องต้น
หากไม่สะดวกใช้ File Manager โดยตรง ปลั๊กอินต่อไปนี้ช่วยได้
- Wordfence Security — มีฟีเจอร์ File Change Detection เปรียบเทียบไฟล์ core WordPress กับไฟล์บน repository อย่างเป็นทางการ ถ้าไฟล์ใดถูกแก้ไขหรือเป็นไฟล์แปลกปลอมจะแจ้งเตือนทันที
- Sucuri Security — สแกนไฟล์และแจ้ง integrity check พร้อมระบุไฟล์ที่ผิดปกติในรายงาน
- WP Cerber Security — มี file monitoring และ quarantine ไฟล์น่าสงสัยได้
ควรใช้ปลั๊กอินเพื่อตรวจสอบ ร่วมกับ การตรวจด้วยตา ไม่ใช่แทนกัน เพราะมัลแวร์บางตัวหลบเลี่ยงการสแกนโดยอัตโนมัติได้

ตรวจสอบไฟล์ Core WordPress ว่าถูกแก้ไขหรือไม่
WordPress core มีโครงสร้างไฟล์ที่แน่นอน ไฟล์ใดก็ตามในโฟลเดอร์ /wp-admin/ หรือ /wp-includes/ ที่ไม่ได้มาจาก WordPress จริง ๆ คือสัญญาณอันตราย
- ตรวจสอบไฟล์
wp-config.phpว่ามีโค้ดแปลก ๆ แทรกอยู่หรือไม่ โดยเฉพาะบรรทัดแรกก่อน<?php - ตรวจไฟล์
.htaccessในโฟลเดอร์ root (WordPress.org ระบุว่าเป็นไฟล์ที่ถูกแก้บ่อยในเว็บที่ติดมัลแวร์ไม่ว่าแบบไหน) — มัลแวร์ประเภท redirect มักซ่อนอยู่ที่นี่ ดูปัญหาเว็บ WordPress เด้งไปเว็บพนันเป็นตัวอย่าง - เปรียบเทียบโฟลเดอร์
/wp-includes/กับ WordPress เวอร์ชันเดียวกันที่ดาวน์โหลดใหม่จาก wordpress.org ถ้ามีไฟล์พิเศษที่ไม่อยู่ในชุดใหม่ ไฟล์นั้นคือไฟล์แปลกปลอม
ฟังก์ชันที่มัลแวร์ใช้บ่อย และคำสั่งค้นหา
ถ้าเข้า SSH ได้ คำสั่งชุดนี้ช่วยหาไฟล์น่าสงสัยได้เร็วกว่าเปิดดูทีละไฟล์มาก ผลลัพธ์อาจมีไฟล์ปกติปนอยู่ เพราะ Plugin ดีๆ บางตัวก็ใช้ฟังก์ชันเหล่านี้ ต้องเปิดดูก่อนลบทุกครั้ง
| ฟังก์ชันหรือรูปแบบ | มัลแวร์ใช้ทำอะไร |
|---|---|
eval(, assert( |
รันข้อความให้กลายเป็นคำสั่ง PHP |
base64_decode(, gzinflate(, str_rot13( |
ถอดรหัสโค้ดที่ซ่อนไว้ |
$_POST[, $_REQUEST[, $_COOKIE[ ใกล้กับ eval |
รับคำสั่งจากแฮกเกอร์ผ่านเว็บ |
shell_exec(, system(, passthru( |
รันคำสั่งบนเซิร์ฟเวอร์ |
\x ต่อกันยาวๆ, ตัวแปรชื่อ $O0O0 |
ทำให้อ่านโค้ดไม่ออก |
@include ไฟล์ .ico, .png, .txt |
โหลดโค้ดที่ซ่อนในไฟล์ที่ดูเหมือนรูปภาพ |
คำสั่งค้นหาไฟล์น่าสงสัยผ่าน SSH
# 1. ไฟล์ PHP ในโฟลเดอร์ uploads (ปกติไม่ควรมีเลย)
find wp-content/uploads -name "*.php"
# 2. ไฟล์ PHP ที่ถูกแก้ภายใน 7 วันล่าสุด
find . -name "*.php" -mtime -7
# 3. ไฟล์ที่ใช้ฟังก์ชันที่มัลแวร์ชอบใช้
grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(" wp-content/
# 4. เทียบไฟล์ WordPress Core และ Plugin กับต้นฉบับ (ต้องมี WP-CLI)
wp core verify-checksums
wp plugin verify-checksums --all
ข้อ 4 แม่นที่สุด เพราะบอกได้ว่าไฟล์ไหนถูกแก้หรือเพิ่มเข้ามาจากต้นฉบับ ใช้ได้กับ WordPress Core และ Plugin ที่มาจาก WordPress.org ส่วน Plugin แบบเสียเงินต้องเทียบกับไฟล์ที่ดาวน์โหลดใหม่จากผู้พัฒนา
ตัวอย่างไฟล์ที่คำสั่งด้านบนจะเจอ
<?php $O0O0='\x62\x61\x73\x65\x36\x34…';$O00O=$O0O0('aWYoaXNzZXQo…ตัดออก…');@eval($O00O);?>
ไฟล์แบบนี้ยาวบรรทัดเดียว ไม่มีช่องว่าง ไม่มีคำอธิบาย และใช้ตัวแปรที่อ่านแทบไม่ออก โค้ดของ Plugin จริงไม่เขียนแบบนี้
เมื่อพบไฟล์น่าสงสัย ควรทำอะไรต่อ
การพบไฟล์แปลกปลอมไม่ได้หมายความว่าต้องลบทันทีโดยไม่ดูอะไร ให้ทำตามขั้นตอนนี้
- ทำ backup ก่อน — ก่อนแตะไฟล์ใด ๆ ให้สำรองข้อมูลทั้งหมดไว้ก่อน
- ดูเนื้อหาไฟล์ — ถ้าพบ
eval(base64_decode(...))หรือโค้ด obfuscate ให้สันนิษฐานว่าอันตรายและลบทิ้ง - ตรวจว่าไฟล์เดิมถูกแก้ไขหรือเปล่า — ถ้าเป็นไฟล์ core เช่น
wp-login.phpให้ overwrite ด้วยไฟล์ใหม่สะอาดจาก wordpress.org โดยใช้เวอร์ชันเดียวกับที่เว็บใช้อยู่ เพราะWordPress.org เตือนว่าถ้าใช้คนละเวอร์ชันเว็บมีโอกาสพัง - เปลี่ยนรหัสผ่านทันที — รหัส Admin, Database, FTP, Hosting ทั้งหมด
- ตรวจ user accounts — ดูว่ามี admin account แปลก ๆ ถูกสร้างขึ้นหรือไม่
หากพบไฟล์จำนวนมากหรือไม่แน่ใจจะจัดการอย่างไร การขอความช่วยเหลือจากบริการล้างไวรัส WordPressมืออาชีพอาจคุ้มค่ากว่าการแก้เองแบบลองผิดลองถูก โดยเฉพาะถ้าเว็บนั้นมีความสำคัญต่อธุรกิจ อ่านเพิ่มเติมเรื่องสิ่งที่ต้องทำเมื่อเว็บถูกแฮกได้ที่นี่
วิธีป้องกันไฟล์แปลกปลอมในระยะยาว
- ตั้งค่าให้โฮสต์ บล็อก PHP execution ใน /uploads/ โดยสร้างไฟล์
.htaccessในโฟลเดอร์ uploads ที่มี directivephp_flag engine off(คำสั่ง php_flag ใน .htaccess ใช้ได้เมื่อ PHP รันเป็นโมดูลของ Apache ตามคู่มือ PHP ถ้าโฮสต์ใช้ PHP-FPM ให้ถามโฮสต์เรื่องตั้งค่าระดับเซิร์ฟเวอร์) - ใช้ปลั๊กอิน security ที่มี file integrity monitoring แจ้งเตือนทันทีเมื่อมีไฟล์ใหม่ถูกสร้าง
- อัปเดต WordPress core, ธีม, และปลั๊กอินสม่ำเสมอ — ช่องโหว่ที่ไม่ได้ patch คือประตูเข้าหลักของแฮกเกอร์ เรียนรู้เพิ่มเติมว่าทำไม WordPress ถึงติดไวรัสบ่อย
- จำกัด permission ของไฟล์ให้เหมาะสม:
755สำหรับโฟลเดอร์644สำหรับไฟล์ทั่วไป และ400หรือ440สำหรับwp-config.php(ตามคู่มือ Hardening WordPress ของ WordPress.org) - ทำ backup อัตโนมัติทุกวัน เพื่อให้สามารถ restore กลับมาได้หากเกิดปัญหา
- ถ้าใช้ Wordfence อยู่แล้ว อ่านวิธีแปลผลสแกนอย่าง File appears to be malicious or unsafe และวิธีพิสูจน์ก่อนลบได้ที่ คู่มือตั้งค่าและอ่านผลสแกน Wordfence
- การตรวจไฟล์ด้วยตาควรใช้คู่กับเครื่องมือสแกนจากภายนอก อ่านข้อดีและข้อจำกัดของแต่ละเครื่องมือได้ที่ วิธีเช็คว่าเว็บไซต์ติดไวรัสหรือไม่ ด้วยเครื่องมือฟรี
- ถ้าไฟล์ที่พบมีโค้ด JavaScript ที่เข้ารหัสด้วย atob หรือ iframe ที่ถูกซ่อน ดูวิธีแยกแยะและค้นในฐานข้อมูลต่อได้ที่ Malicious JavaScript และ iFrame Injection คืออะไร
- โฟลเดอร์ที่มีไฟล์ index.html และไฟล์ .zip ที่คุณไม่ได้สร้าง อาจเป็น Phishing Kit ดูคำสั่งตรวจที่ เว็บโดนฝังหน้า Phishing คืออะไร
- งาน cron แปลกปลอมและไฟล์รันได้ในโฟลเดอร์ชั่วคราวเป็นร่องรอยที่พบบ่อยของ โปรแกรมขุดเหรียญบนเซิร์ฟเวอร์ (Cryptojacking)
คำถามที่พบบ่อย
ไฟล์ .php ในโฟลเดอร์ uploads อันตรายเสมอไหม
ใช่ โฟลเดอร์ uploads ออกแบบมาสำหรับเก็บรูปภาพและมีเดียเท่านั้น ไม่มีเหตุผลที่จะมีไฟล์ .php อยู่ที่นั้น ถ้าพบให้ถือว่าเป็นมัลแวร์จนกว่าจะพิสูจน์ได้ว่าไม่ใช่
ใช้ปลั๊กอินสแกนแล้วไม่พบอะไร แปลว่าเว็บปลอดภัยแน่นอนไหม
ไม่แน่เสมอไป มัลแวร์บางประเภทสามารถหลบหลีกการสแกนอัตโนมัติได้ ควรตรวจสอบด้วยตาร่วมกับปลั๊กอิน โดยเฉพาะโฟลเดอร์ uploads และไฟล์ .htaccess
ถ้าไม่แน่ใจว่าไฟล์ไหนแปลกปลอม ควรลบเลยไหม
ไม่ควรลบโดยไม่ตรวจก่อน ให้ทำ backup ก่อนเสมอ แล้วเปิดดูเนื้อหาไฟล์ ถ้าพบโค้ด eval หรือ base64_decode ให้ลบได้เลย แต่ถ้าไม่แน่ใจควรปรึกษาผู้เชี่ยวชาญ
ตรวจพบไฟล์แปลกปลอมเองแต่ไม่รู้จะเริ่มล้างยังไง ควรทำอะไร
ขั้นแรกให้ทำ backup ทั้งหมดก่อน จากนั้นเปลี่ยนรหัสผ่าน Admin และ Database ทันที แล้วพิจารณาใช้บริการผู้เชี่ยวชาญด้านมัลแวร์ WordPress เพื่อให้แน่ใจว่าล้างหมดทุกจุดโดยไม่มีตกหล่น
wp core verify-checksums คืออะไร ใช้ตรวจอะไร?
เป็นคำสั่ง WP-CLI ที่เทียบไฟล์ WordPress Core บนเว็บกับต้นฉบับจาก wordpress.org เพื่อบอกว่าไฟล์ไหนถูกแก้หรือถูกเพิ่มเข้ามา ส่วน Plugin จาก WordPress.org ตรวจได้ด้วย wp plugin verify-checksums --all
ไฟล์ชื่อคล้ายไฟล์ระบบ เช่น wp-loginn.php อันตรายไหม?
ควรสงสัยไว้ก่อน เพราะแฮกเกอร์มักตั้งชื่อไฟล์ให้ดูเหมือนไฟล์ระบบ เช่น wp-loginn.php, index2.php หรือไฟล์นามสกุลซ้อนอย่าง image.jpg.php ให้ Backup แล้วเปิดดูเนื้อหาหรือเทียบกับ WordPress ต้นฉบับก่อนตัดสินใจลบ
แหล่งอ้างอิง
- WordPress.org. (ม.ป.ป.). Hardening WordPress. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://developer.wordpress.org/advanced-administration/security/hardening/
- WordPress.org. (2026). FAQ: My site was hacked. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://wordpress.org/documentation/article/faq-my-site-was-hacked/
- WP-CLI. (ม.ป.ป.). wp core verify-checksums. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://developer.wordpress.org/cli/commands/core/verify-checksums/
- WP-CLI. (ม.ป.ป.). wp plugin verify-checksums. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://developer.wordpress.org/cli/commands/plugin/verify-checksums/
- MITRE. (ม.ป.ป.). Server Software Component: Web Shell (T1505.003). สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://attack.mitre.org/techniques/T1505/003/
- MITRE. (ม.ป.ป.). CWE-434: Unrestricted Upload of File with Dangerous Type. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://cwe.mitre.org/data/definitions/434.html
- PHP Group. (ม.ป.ป.). How to change configuration settings (PHP Manual). สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://www.php.net/manual/en/configuration.changes.php
- WordPress.org. (ม.ป.ป.). Wordfence Security (WordPress.org plugin directory). สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://wordpress.org/plugins/wordfence/
- WordPress.org. (ม.ป.ป.). Sucuri Security: Auditing, Malware Scanner and Hardening (WordPress.org plugin directory). สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://wordpress.org/plugins/sucuri-scanner/
