
สรุปคำตอบ
Web Shell คือไฟล์โค้ดอันตราย ส่วนใหญ่เป็นไฟล์ PHP ที่แฮกเกอร์อัปโหลดไว้บนเซิร์ฟเวอร์ เมื่อเรียกผ่านเบราว์เซอร์จะทำงานเหมือน Terminal ให้แฮกเกอร์จัดการไฟล์ รันคำสั่ง ดูฐานข้อมูล และฝังมัลแวร์เพิ่มได้จากระยะไกล โดยมักเข้ามาทางช่องโหว่ของ Plugin หรือ Theme ฟอร์มอัปโหลดที่ไม่ตรวจนามสกุลไฟล์ หรือรหัสผ่าน FTP และ wp-admin ที่รั่ว จุดที่พบบ่อยคือไฟล์ .php ใน wp-content/uploads/ การกำจัดต้องสแกนทุกไฟล์ แทนที่ไฟล์ Core ที่ถูกแก้ เปลี่ยนรหัสผ่านทุกจุด และตามหา Backdoor ให้ครบ
หากเว็บไซต์ WordPress ของคุณถูกแฮก หนึ่งในเครื่องมือที่แฮกเกอร์นิยมฝังไว้มากที่สุดคือ Web Shell ซึ่งแตกต่างจากมัลแวร์ทั่วไปตรงที่มันไม่ได้แค่ทำลายข้อมูล แต่เปิดช่องให้แฮกเกอร์ ควบคุมเซิร์ฟเวอร์ของคุณจากระยะไกลได้อย่างสมบูรณ์ เข้าใจว่า Web Shell คืออะไร ทำงานอย่างไร และวิธีกำจัดออกจากเว็บ WordPress คือก้าวแรกที่จะช่วยปกป้องเว็บและลูกค้าของคุณได้จริง
ในเคสจริงเคสหนึ่งเราพบ Web Shell 15 ไฟล์ที่ตั้งชื่อเลียนไฟล์ระบบ อ่านได้ใน เคสร้าน WooCommerce โดนขโมยบัตรเครดิต
Web Shell เป็นมัลแวร์บนเว็บไซต์เพียงประเภทหนึ่ง ภาพรวมของมัลแวร์ทั้ง 7 ประเภทและความต่างจากมัลแวร์บนคอมพิวเตอร์อยู่ใน Malware คืออะไร มีกี่ประเภท
Web Shell คืออะไร
Web Shell คือไฟล์โค้ดอันตราย (มักเป็น PHP) ที่แฮกเกอร์อัปโหลดไว้บนเซิร์ฟเวอร์ของคุณ (MITRE ATT&CK นิยามว่าเป็นสคริปต์บนเว็บเซิร์ฟเวอร์ที่ผู้โจมตีใช้เป็นช่องทางเข้าถึงต่อเนื่อง) เมื่อเรียกผ่านเบราว์เซอร์ มันจะทำงานเหมือน Terminal หรือ Command Prompt บนเว็บ ทำให้แฮกเกอร์สามารถ:
- รันคำสั่งบนเซิร์ฟเวอร์โดยตรง เช่น ลบ แก้ไข หรืออัปโหลดไฟล์ใหม่
- ดูข้อมูลในฐานข้อมูล รวมถึงรหัสผ่านและข้อมูลลูกค้า
- ติดตั้งมัลแวร์เพิ่มเติม หรือสร้าง Backdoor หลายจุดไว้ในเว็บ
- ใช้เซิร์ฟเวอร์ของคุณโจมตีเว็บอื่นต่อ (botnet)
ชื่อที่พบบ่อย ได้แก่ c99.php, r57.php, wso.php, shell.php หรือไฟล์ที่ตั้งชื่อแฝงดูปกติ เช่น wp-config-backup.php หรือ image.php

แฮกเกอร์อัปโหลด Web Shell ได้อย่างไร
Web Shell ไม่ได้ปรากฏขึ้นมาเอง แฮกเกอร์จะเข้าถึงเซิร์ฟเวอร์ก่อนผ่านช่องโหว่ต่าง ๆ ได้แก่:
- Plugin หรือ Theme ที่มีช่องโหว่ — โดยเฉพาะที่ไม่ได้อัปเดต หรือดาวน์โหลดจากแหล่งไม่น่าเชื่อถือ รายงาน State of WordPress Security in 2026 ของ Patchstack พบว่าช่องโหว่ใหม่ในปี 2025 อยู่ใน Plugin 91% และ Theme 9%
- ฟอร์มอัปโหลดไฟล์ที่ไม่ได้ตรวจสอบนามสกุล — เช่น ช่องอัปโหลดรูป ที่ยอมรับไฟล์ .php
- รหัสผ่าน FTP/cPanel ที่รั่ว — แฮกเกอร์วาง shell ตรง ๆ ผ่าน FTP
- การ Brute Force WP Admin — เมื่อเข้าได้แล้วก็อัปโหลดผ่านธีม Editor หรือ Plugin
เมื่อ Shell ถูกวางไว้แล้ว แม้คุณจะเปลี่ยนรหัสผ่าน WordPress แฮกเกอร์ก็ยังเข้าได้ต่อผ่าน URL ของ Shell โดยตรง นี่คือเหตุผลที่การล้างมัลแวร์โดยไม่ค้นหา Shell ให้ครบทำให้ เว็บติดมัลแวร์ซ้ำซาก
Web Shell หน้าตาเป็นอย่างไร
Web Shell คือไฟล์ PHP ไฟล์เดียวที่เปิดผ่านเบราว์เซอร์แล้วได้หน้าจอควบคุมเซิร์ฟเวอร์ทั้งเครื่อง ทั้งจัดการไฟล์ รันคำสั่ง และแก้ฐานข้อมูล ตัวอย่างในหัวข้อนี้ตัดส่วนที่ทำงานได้ออกแล้ว และเปลี่ยนโดเมนเป็นโดเมนสมมติ .example ใช้เพื่อให้จำหน้าตาได้เวลาเจอในเว็บของคุณเท่านั้น
ส่วนหัวของไฟล์ Web Shell ที่พบบ่อย
<?php
error_reporting(0); @set_time_limit(0); @ini_set('display_errors', 0);
$auth_pass = 'e10adc3949ba59abbe56e057f20f883e'; // รหัสผ่านแบบ MD5 สำหรับแฮกเกอร์
// … โค้ดที่เข้ารหัสไว้อีกหลายพันบรรทัด — ตัดออก
จุดสังเกต: ปิดการแสดง Error ทั้งหมด ยกเลิกเวลาจำกัดการทำงาน และมีตัวแปรรหัสผ่านแบบ MD5 อยู่ด้านบน ตามด้วยข้อความยาวที่อ่านไม่ออก ไฟล์มักใหญ่ผิดปกติเมื่อเทียบกับไฟล์ PHP ทั่วไป
เมื่อเปิดในเบราว์เซอร์ บางตัวแสดงหน้า 404 ปลอม หรือหน้าขาว จนกว่าจะส่งรหัสผ่านที่ถูกต้อง จึงเปิดดูเฉยๆ อาจไม่เห็นอะไร
ชื่อไฟล์และตำแหน่งที่ Web Shell ชอบใช้
wp-content/uploads/2026/05/thumb-cache.php ← ไม่ควรมีไฟล์ PHP ใน uploads
wp-content/uploads/.tmp/index.php
wp-includes/wp-system-cache.php ← ชื่อคล้ายไฟล์ระบบ แต่ไม่มีใน WordPress จริง
wp-content/mu-plugins/wp-security-helper.php ← โหลดทุกหน้าโดยไม่ขึ้นในรายการ Plugin
wp-content/plugins/akismet/.cache.php ← ซ่อนใน Plugin ที่ทุกเว็บมี
.well-known/pki-validation/about.php
จุดสังเกต: แฮกเกอร์ตั้งชื่อให้ดูน่าเชื่อถือ เช่น cache, helper, security หรือวางไว้ในโฟลเดอร์ที่ทุกเว็บมี ตัดสินจากชื่ออย่างเดียวไม่ได้ ต้องเทียบกับไฟล์ต้นฉบับ วิธีเทียบอยู่ในหัวข้อถัดไปและในบทความ วิธีเช็กไฟล์แปลกปลอมใน WordPress
วิธีตรวจหา Web Shell ใน WordPress
การหา Web Shell ต้องตรวจที่ระดับไฟล์เซิร์ฟเวอร์ ไม่ใช่แค่ใน WP Admin ขั้นตอนเบื้องต้นที่ทำได้:
- ตรวจไฟล์ PHP ในโฟลเดอร์ที่ไม่ควรมี — เช่น
/wp-content/uploads/ปกติจะมีแต่รูปและมีเดีย ถ้าพบ .php ให้ถือว่าผิดปกติจนกว่าจะพิสูจน์ได้ว่าไม่ใช่ ซึ่งMITRE แนะนำให้เฝ้าดูการสร้างไฟล์สคริปต์ใหม่ในโฟลเดอร์ของเว็บเช่นกัน - ค้นหา Pattern อันตรายในโค้ด — ฟังก์ชันที่ Shell มักใช้ เช่น
eval(,base64_decode(,system(,passthru(,shell_exec( - ใช้ Plugin Wordfence หรือ Sucuri Scanner — สแกนเพื่อหาไฟล์ที่ไม่ตรงกับ WordPress core
- ตรวจ Access Log ของ Hosting — หา Request ที่เรียกไฟล์ .php แปลก ๆ ซ้ำ ๆ โดยเฉพาะ POST request ที่ส่ง parameter มาด้วย
สำหรับวิธีตรวจสอบไฟล์ในเชิงลึก สามารถดูเพิ่มเติมได้ที่ วิธีเช็กไฟล์แปลกปลอมใน WordPress เบื้องต้น และ อาการ WordPress ติดมัลแวร์ และวิธีตรวจสอบด้วยตัวเอง

วิธีกำจัด Web Shell ออกจาก WordPress
เมื่อพบแล้ว ต้องจัดการอย่างเป็นระบบ ไม่ใช่แค่ลบไฟล์ที่พบเท่านั้น:
- ขั้นที่ 1 — Backup ก่อนเสมอ แม้จะติดมัลแวร์ ก็ต้อง Backup ไว้เป็น evidence และป้องกันการสูญหายของข้อมูลที่ยังดีอยู่
- ขั้นที่ 2 — ระงับการเข้าถึง Shell ชั่วคราว หากทราบ URL ของ Shell ให้ Block ผ่าน .htaccess หรือ Firewall ก่อน
- ขั้นที่ 3 — สแกนทุกไฟล์บนเซิร์ฟเวอร์ ใช้ Malware Scanner ระดับ Server-side เช่น Imunify360 (ถ้า Hosting รองรับ) หรือ Wordfence CLI
- ขั้นที่ 4 — ลบหรือแทนที่ไฟล์ที่ติด ไฟล์ Core WordPress ที่ถูกแก้ไข ให้ดาวน์โหลดเวอร์ชันเดียวกับที่ใช้อยู่มาแทนที่ โดยWordPress.org ระบุว่าโฟลเดอร์ wp-admin และ wp-includes แทนที่ได้อย่างปลอดภัย ส่วน wp-content ต้องไล่ตรวจทีละไฟล์
- ขั้นที่ 5 — เปลี่ยน Credential ทุกอย่าง รหัสผ่าน WordPress admin, FTP, cPanel, Database และ Secret Keys ใน wp-config.php ตามที่WordPress.org แนะนำ
- ขั้นที่ 6 — ตรวจหา Backdoor ที่อาจซ่อนอยู่ Shell มักมาพร้อม Backdoor สำรอง ต้องค้นหาให้ครบ ไม่เช่นนั้น Shell ใหม่จะถูกสร้างขึ้นมาใหม่
วิธีป้องกัน Web Shell ในอนาคต
- อัปเดต WordPress Core, Plugin และ Theme ให้เป็นเวอร์ชันล่าสุดอยู่เสมอ เพราะช่องโหว่ส่วนใหญ่มีการ Patch แล้ว
- ติดตั้ง WAF (Web Application Firewall) เช่น Cloudflare หรือ Wordfence เพื่อบล็อก Request อันตรายก่อนถึงเซิร์ฟเวอร์
- ปิดการแก้ไขไฟล์ใน WP Admin ตามคู่มือ Hardening ของ WordPress.org โดยเพิ่ม
define('DISALLOW_FILE_EDIT', true);ใน wp-config.php - จำกัดสิทธิ์ไฟล์บนเซิร์ฟเวอร์ โฟลเดอร์ uploads ไม่ควรรัน PHP ได้ ทำได้โดยสร้าง .htaccess ในนั้นที่ Deny การ Execute .php
- ใช้ Plugin ที่มาจากแหล่งที่เชื่อถือได้เท่านั้น ไม่ดาวน์โหลด Nulled Plugin/Theme เด็ดขาด เพราะมักมีมัลแวร์หรือ Backdoor ฝังมาด้วย
- ตั้ง Two-Factor Authentication (2FA) สำหรับ WP Admin และ cPanel
เมื่อไหร่ควรเรียกผู้เชี่ยวชาญ
หากคุณพบว่าเว็บมี Web Shell แล้ว แนะนำให้ขอความช่วยเหลือจากผู้เชี่ยวชาญในกรณีต่อไปนี้:
- ไม่แน่ใจว่าพบ Shell ครบหรือยัง เพราะ Shell ที่เหลือแม้แค่ตัวเดียวก็เปิดช่องโหว่ได้
- เว็บเป็นเชิงพาณิชย์ มีข้อมูลลูกค้า หรือรับชำระเงิน ต้องตรวจสอบว่าข้อมูลรั่วไหลหรือไม่
- Hosting แจ้งพบ Malware และขู่ระงับบริการ ซึ่งต้องแก้ไขภายในเวลาจำกัด
- ล้างมัลแวร์แล้วแต่เว็บกลับมาติดซ้ำ ซึ่งมักหมายความว่ายังมี Shell หรือ Backdoor หลงเหลืออยู่
ทีม WP Doctor Thailand มีบริการ ล้างไวรัส WordPress แบบครบวงจร ตรวจหาและกำจัด Web Shell, Backdoor และมัลแวร์ทุกประเภท พร้อมรายงานผลและคำแนะนำป้องกันหลังการล้าง
- Web Shell มักถูกใช้อัปโหลด Phishing Kit ลงเว็บ ดูวิธีหาและลบได้ที่ เว็บโดนฝังหน้า Phishing
- Web Shell เป็นช่องทางที่ผู้โจมตีมักใช้แก้ไฟล์หน้าแรกของเว็บ อ่านวิธีรับมือเมื่อหน้าเว็บถูกเปลี่ยนได้ที่ Website Defacement คืออะไร
คำถามที่พบบ่อย
Web Shell ต่างจาก Backdoor อย่างไร
Web Shell คืออินเทอร์เฟซที่ให้แฮกเกอร์รันคำสั่งบนเซิร์ฟเวอร์ได้โดยตรงผ่านเบราว์เซอร์ ส่วน Backdoor คือช่องทางลับที่ใช้เข้าถึงเว็บโดยไม่ต้องล็อกอิน ซึ่งบางครั้ง Web Shell ก็ทำหน้าที่เป็น Backdoor ไปพร้อมกัน
Web Shell มักซ่อนอยู่ที่ไหนใน WordPress
ที่พบบ่อยที่สุดคือโฟลเดอร์ wp-content/uploads/ เพราะเป็นที่เดียวที่มักเปิดสิทธิ์เขียนไว้ นอกจากนี้ยังพบในโฟลเดอร์ธีม โฟลเดอร์ Plugin หรือบางครั้งถูกฝังซ่อนในไฟล์ PHP ที่มีอยู่เดิม
ลบ Web Shell ออกแล้ว เว็บยังโดนแฮกอีกได้ไหม
ได้ ถ้ายังมี Shell หรือ Backdoor อื่นหลงเหลืออยู่ และยังไม่ได้อุดช่องโหว่ที่แฮกเกอร์ใช้เข้ามาครั้งแรก การล้างให้สำเร็จต้องค้นหาให้ครบและเปลี่ยน Credential ทุกอย่าง
ตรวจสอบเองได้ไหมว่าเว็บมี Web Shell
ได้ในระดับเบื้องต้น โดยตรวจหาไฟล์ .php ในโฟลเดอร์ uploads และค้นหาฟังก์ชันอันตรายเช่น eval() หรือ base64_decode() ในไฟล์ PHP แต่การค้นหาอย่างละเอียดและแน่ใจ 100% ควรใช้เครื่องมือสแกนระดับ Server-side หรือให้ผู้เชี่ยวชาญตรวจ
Web Shell อันตรายแค่ไหน ถ้ายังไม่รีบลบ?
ตราบใดที่ Web Shell ยังอยู่ แฮกเกอร์ก็เข้ามาได้ตลอดแม้จะเปลี่ยนรหัสผ่าน WordPress แล้ว และสามารถดูข้อมูลลูกค้าในฐานข้อมูล ฝังมัลแวร์เพิ่ม หรือใช้เซิร์ฟเวอร์ของคุณโจมตีเว็บอื่นต่อ ซึ่งอาจทำให้ Hosting ระงับบัญชีได้
ป้องกันไม่ให้รันไฟล์ PHP ในโฟลเดอร์ uploads ทำยังไง?
บนเซิร์ฟเวอร์ Apache ให้สร้างไฟล์ .htaccess ในโฟลเดอร์ wp-content/uploads/ ที่ปฏิเสธการเรียกไฟล์ .php ส่วนเซิร์ฟเวอร์ Nginx ต้องตั้งกฎใน config ของเซิร์ฟเวอร์ และควรเพิ่ม define('DISALLOW_FILE_EDIT', true); ใน wp-config.php เพื่อปิดการแก้ไฟล์ผ่าน WP Admin ด้วย
แหล่งอ้างอิง
- 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
- Patchstack. (2026). State of WordPress Security in 2026. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://patchstack.com/whitepaper/state-of-wordpress-security-in-2026/
- WordPress.org. (2026). FAQ: My site was hacked. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://wordpress.org/documentation/article/faq-my-site-was-hacked/
- WordPress.org. (ม.ป.ป.). Hardening WordPress. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://developer.wordpress.org/advanced-administration/security/hardening/
- Sucuri. (2026). The Security Risks of Using Nulled WordPress Plugins. สืบค้นเมื่อ 3 พฤศจิกายน 2026, จาก https://blog.sucuri.net/2026/03/the-security-risks-of-using-nulled-wordpress-plugins.html
- 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/
