2026年11月12日
2026年11月12日
如何檢查 WordPress 外掛漏洞|WP-CLI、WPScan、漏洞資料庫的用法
本文是日文原文的在地化版本。 閱讀日文原文
外掛的漏洞,有時從公開到攻擊開始的時間非常短。基本做法是定期執行這個流程:掌握已安裝的外掛與版本,與已知漏洞比對,有修正版就更新。本文依序說明用 WP-CLI 確認版本、用 WPScan 比對、漏洞資料庫的看法、確認是否遭竄改,以及發現漏洞時的處理方式。指令與費用的條件,是 2026 年 11 月時對照各官方文件所確認的內容。
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 網站的命令列工具。漏洞資訊是從 WPScan 的 API 取得的,所以要在 wpscan.com 建立帳號並發行 API 權杖後使用。
依據 WPScan 的費用頁面,免費方案僅限非商業用途,API 的呼叫每天最多 25 次。如果要用在商業網站,則需要付費授權。沒有 API 權杖也能執行,但這時不會顯示漏洞資訊。
# 安裝(以 Ruby 的 gem 安裝時)
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 |
有被回報漏洞的佈景主題 |
外掛的偵測,預設是從頁面的 HTML 等讀取的 passive 方式。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 注入、權限提升、任意檔案上傳等 |
請從不用登入就能被利用的、嚴重程度高的開始處理。對於有開放使用者註冊的網站(會員網站、商店等),可以用訂閱者權限被利用的漏洞,則要趕快處理。
4. 確認檔案是否遭到竄改
當漏洞有可能被利用時,要確認檔案是否仍是發布時的樣子。WP-CLI 的 verify-checksums,會把 WordPress.org 公開的校驗碼(checksum)與檔案做比對。
# 檢查所有外掛
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 發布的付費外掛沒有校驗碼,所以無法用這個方法檢查。這種情況下,請從發行方下載相同版本,再比對檔案。
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(wp plugin list 的 name 欄)。
- 更新之前先備份,更新後要確認主要的畫面(聯絡表單、付款等)能正常運作。
- 沒有推出修正版、開發已經停止的外掛,請考慮改用功能相同的其他外掛。在 WordPress.org 停止發布的外掛,其外掛頁面上會顯示停止的標示。
- 如果有遭竄改的跡象,只更新是不夠的。也請確認是否有新增的管理員使用者、放在 uploads 中的 PHP 檔案、wp-config.php 的變更等,必要時從備份還原。
6. 讓確認成為習慣
- 在後台的「外掛」中,可以針對每個外掛啟用自動更新(WordPress 5.5 以後)。請從更新時比較不擔心版面崩壞的外掛開始啟用。詳情請參考「設定外掛自動更新的方法」。
- 如果要用 cron 定期執行 WPScan,請注意免費額度每天 25 次與非商業用途的條件。
- 安全性外掛 Wordfence 也會在掃描時,通知需要更新的外掛等。使用方式請見「用 Wordfence 掃描網站」。
總結
檢查外掛漏洞,依序進行:列出清單(wp plugin list)、與已知漏洞比對(WPScan 或漏洞資料庫)、確認是否遭竄改(wp plugin verify-checksums)、以更新或刪除處理。刪除沒在使用的外掛,是最省事的對策。
對 WordPress 有疑問嗎?本站營運方位於日本,僅以日文回覆。 聯絡我們(日文)