2026年11月12日

2026年11月12日

ตรวจช่องโหว่ปลั๊กอิน WordPress ด้วย WP-CLI, WPScan และฐานข้อมูลช่องโหว่

บทความนี้เป็นฉบับปรับให้เหมาะกับท้องถิ่นจากต้นฉบับภาษาญี่ปุ่น อ่านต้นฉบับภาษาญี่ปุ่น

ช่องโหว่ของปลั๊กอินบางครั้งถูกโจมตีหลังเปิดเผยเพียงระยะสั้น ๆ หลักพื้นฐานคือทำซ้ำเป็นประจำตามลำดับ คือ รู้ว่าติดตั้งปลั๊กอินอะไรเวอร์ชันใด เทียบกับช่องโหว่ที่รู้จัก และอัปเดตหากมีเวอร์ชันที่แก้ไขแล้ว บทความนี้อธิบายตามลำดับ ตั้งแต่การตรวจเวอร์ชันด้วย WP-CLI การเทียบด้วย WPScan วิธีอ่านฐานข้อมูลช่องโหว่ การตรวจว่าไฟล์ถูกแก้ไขหรือไม่ และการจัดการเมื่อพบ คำสั่งและเงื่อนไขค่าบริการเป็นเนื้อหาที่ตรวจจากเอกสารทางการแต่ละแห่ง ณ พฤศจิกายน 2026

1. ทำรายการปลั๊กอินที่ติดตั้งและเวอร์ชัน

ก่อนอื่นให้รู้ว่าติดตั้งอะไรไว้ในเวอร์ชันใด ตรวจได้ที่ "ปลั๊กอิน (Plugins) → ปลั๊กอินที่ติดตั้งแล้ว (Installed Plugins)" ในหน้าผู้ดูแล แต่หากใช้ WP-CLI จะบันทึกรายการไว้ได้

# แสดงชื่อ เวอร์ชัน เปิด/ปิดใช้งาน และมีการอัปเดตหรือไม่
wp plugin list --fields=name,version,status,update

# แสดงเฉพาะตัวที่มีการอัปเดต
wp plugin list --update=available

# บันทึกเป็น JSON เพื่อเก็บบันทึก
wp plugin list --fields=name,version,status --format=json > plugins.json

ปลั๊กอินที่ปิดใช้งานก็ปรากฏในรายการด้วย แม้ปิดใช้งานแต่ไฟล์ยังอยู่บนเซิร์ฟเวอร์ และอาจมีการเข้าถึงไฟล์ที่มีช่องโหว่โดยตรง จึงควรลบตัวที่ไม่ได้ใช้ ขั้นพื้นฐานของ WP-CLI อธิบายไว้ใน "วิธีจัดการปลั๊กอินด้วย WP-CLI"

2. เทียบกับช่องโหว่ที่รู้จักด้วย WPScan

WPScan เป็นเครื่องมือบรรทัดคำสั่งที่ตรวจเว็บไซต์ WordPress จากภายนอก ข้อมูลช่องโหว่ดึงมาจาก API ของ WPScan จึงต้องสร้างบัญชีที่ wpscan.com และออก API token มาใช้

ตามหน้าราคาของ WPScan แผนฟรีจำกัดเฉพาะการใช้งานที่ไม่ใช่เชิงพาณิชย์ และเรียก API ได้วันละ 25 ครั้ง หากใช้กับไซต์เชิงธุรกิจต้องมีไลเซนส์แบบเสียเงิน แม้ไม่ใช้ API token ก็ทำงานได้ แต่จะไม่แสดงข้อมูลช่องโหว่

# ติดตั้ง (กรณีติดตั้งด้วย gem ของ Ruby)
gem install wpscan

# กรณีใช้ Docker
docker pull wpscanteam/wpscan

# ตรวจปลั๊กอินที่มีรายงานช่องโหว่
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp

# ใช้วิธีตรวจจับทั้ง passive และ aggressive
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp --plugins-detection mixed

ค่าหลักของ -e มีดังนี้

ค่า เป้าหมาย
vp ปลั๊กอินที่มีรายงานช่องโหว่
ap ปลั๊กอินทั้งหมด
p ปลั๊กอินที่ใช้กันบ่อย
vt ธีมที่มีรายงานช่องโหว่

การตรวจจับปลั๊กอินโดยมาตรฐานเป็นแบบ passive ซึ่งอ่านจาก HTML ของหน้าเว็บเป็นต้น ปลั๊กอินที่ไม่ทิ้งร่องรอยใน HTML อาจตรวจไม่พบ หากระบุ aggressive หรือ mixed การตรวจจับจะเพิ่มขึ้น แต่จำนวนคำขอก็เพิ่มด้วย

ใช้ WPScan ตรวจได้เฉพาะเว็บไซต์ที่ตนเองดูแล หรือเว็บไซต์ที่ได้รับอนุญาตเท่านั้น รายละเอียดการใช้งานดูเพิ่มเติมได้ที่ "ตรวจช่องโหว่ของไซต์ด้วย WPScan"

3. ยืนยันรายละเอียดด้วยฐานข้อมูลช่องโหว่

ปลั๊กอินที่ปรากฏในผลของ WPScan หรือถูกเอ่ยชื่อในข่าวด้านความปลอดภัย ให้ตรวจรายละเอียดในฐานข้อมูลต่อไปนี้

  • WPScan Vulnerability Database (wpscan.com)
  • Wordfence Intelligence (wordfence.com)
  • Patchstack Database (patchstack.com)
  • NVD (nvd.nist.gov, ค้นด้วยหมายเลข CVE)

หัวข้อที่ควรดูมีดังนี้

หัวข้อ สิ่งที่ต้องยืนยัน
เวอร์ชันที่ได้รับผลกระทบ เวอร์ชันของตนอยู่ในช่วงนั้นหรือไม่
เวอร์ชันที่แก้ไขแล้ว หากอัปเดตแล้วจะหายหรือไม่ บางกรณียังไม่มีเวอร์ชันที่แก้ไข
สิทธิ์ที่ต้องมี ใช้โจมตีได้โดยไม่ต้องล็อกอินหรือไม่ หรือต้องมีสิทธิ์ผู้เขียนหรือสมาชิก
ความรุนแรง (CVSS) ตัวเลข 0-10 ยิ่งสูงยิ่งกระทบมาก
ประเภท XSS, SQL injection, การยกระดับสิทธิ์, การอัปโหลดไฟล์ใดก็ได้ เป็นต้น

ให้จัดการสิ่งที่โจมตีได้โดยไม่ต้องล็อกอิน และสิ่งที่มีความรุนแรงสูงก่อน ส่วนสิ่งที่โจมตีได้ด้วยสิทธิ์ของสมาชิก หากเป็นไซต์ที่เปิดรับลงทะเบียนผู้ใช้ (ไซต์สมาชิก ร้านค้า เป็นต้น) ให้รีบจัดการ

4. ตรวจว่าไฟล์ถูกแก้ไขหรือไม่

เมื่อมีความเป็นไปได้ว่าช่องโหว่ถูกใช้โจมตี ให้ตรวจว่าไฟล์ยังเหมือนตอนแจกจ่ายหรือไม่ verify-checksums ของ WP-CLI จะเทียบไฟล์กับ checksum ที่ WordPress.org เผยแพร่

# ตรวจปลั๊กอินทั้งหมด
wp plugin verify-checksums --all

# ตรวจเฉพาะปลั๊กอินที่ระบุ
wp plugin verify-checksums contact-form-7

# ตรวจไฟล์ของแกนหลัก WordPress
wp core verify-checksums

หากไม่มีปัญหาจะแสดงข้อความอย่าง Success: Verified 8 of 8 plugins. หากมีไฟล์ที่ถูกเพิ่มหรือมีเนื้อหาต่างไป จะแสดงรายการของไฟล์เหล่านั้น

ปลั๊กอินแบบเสียเงินที่ไม่ได้แจกจ่ายที่ WordPress.org ไม่มี checksum จึงตรวจด้วยวิธีนี้ไม่ได้ ในกรณีนั้น ให้ดาวน์โหลดเวอร์ชันเดียวกันจากผู้แจกจ่ายมาเปรียบเทียบไฟล์

5. วิธีจัดการเมื่อพบช่องโหว่

# กรณีมีเวอร์ชันที่แก้ไขแล้ว: อัปเดต
wp plugin update contact-form-7

# กรณีไม่มีเวอร์ชันที่แก้ไข: ปิดใช้งาน และลบหากไม่ได้ใช้
wp plugin deactivate vulnerable-plugin
wp plugin delete vulnerable-plugin

# ก่อนอัปเดตทั้งหมดพร้อมกัน ให้ตรวจว่าจะมีอะไรถูกอัปเดตบ้าง
wp plugin update --all --dry-run

vulnerable-plugin เป็นเพียงตัวอย่าง ให้แทนที่ด้วย slug จริง (คอลัมน์ name ของ wp plugin list)

  • ก่อนอัปเดตให้สำรองข้อมูล และหลังอัปเดตให้ตรวจว่าหน้าจอหลัก (ฟอร์มติดต่อ ระบบชำระเงิน เป็นต้น) ทำงานได้
  • ปลั๊กอินที่ไม่มีเวอร์ชันที่แก้ไขและหยุดพัฒนาแล้ว ให้พิจารณาย้ายไปใช้ปลั๊กอินอื่นที่มีฟังก์ชันเดียวกัน ปลั๊กอินที่ WordPress.org หยุดแจกจ่ายจะมีการแจ้งการหยุดแจกจ่ายในหน้าของปลั๊กอิน
  • หากมีร่องรอยการถูกแก้ไข การอัปเดตอย่างเดียวไม่พอ ให้ตรวจการเพิ่มผู้ใช้ผู้ดูแล ไฟล์ PHP ที่ถูกวางใน uploads การเปลี่ยนแปลงของ wp-config.php และอื่น ๆ ด้วย และหากจำเป็นให้กู้คืนจากข้อมูลสำรอง

6. ทำให้การตรวจเป็นนิสัย

  • ในหน้า "ปลั๊กอิน (Plugins)" ของหน้าผู้ดูแล เปิดการอัปเดตอัตโนมัติรายปลั๊กอินได้ (WordPress 5.5 ขึ้นไป) ให้เริ่มจากปลั๊กอินที่ไม่ค่อยเสี่ยงที่การอัปเดตจะทำให้การแสดงผลเพี้ยน ดูรายละเอียดที่ "วิธีตั้งค่าการอัปเดตปลั๊กอินอัตโนมัติ"
  • หากรัน WPScan เป็นระยะด้วย cron ให้ระวังโควตาฟรีวันละ 25 ครั้งและเงื่อนไขที่ต้องไม่ใช่เชิงพาณิชย์
  • Wordfence ซึ่งเป็นปลั๊กอินด้านความปลอดภัยก็แจ้งปลั๊กอินที่ต้องอัปเดตจากการสแกนเช่นกัน วิธีใช้อธิบายไว้ใน "สแกนไซต์ด้วย Wordfence"

สรุป

การตรวจช่องโหว่ของปลั๊กอินทำตามลำดับ คือ ทำรายการ (wp plugin list) เทียบกับช่องโหว่ที่รู้จัก (WPScan หรือฐานข้อมูลช่องโหว่) ตรวจว่ามีการแก้ไขไฟล์หรือไม่ (wp plugin verify-checksums) และจัดการด้วยการอัปเดตหรือลบ การลบปลั๊กอินที่ไม่ได้ใช้เป็นมาตรการที่ใช้แรงน้อยที่สุด

มีคำถามเกี่ยวกับ WordPress ไหม ผู้เผยแพร่เว็บไซต์นี้อยู่ที่ญี่ปุ่นและตอบเป็นภาษาญี่ปุ่น ติดต่อ (ภาษาญี่ปุ่น)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲