保護 Learnify 免受本地文件包含攻擊//發布於 2026-04-25//CVE-2025-60085

WP-防火牆安全團隊

Learnify LFI Vulnerability

插件名稱 Learnify
漏洞類型 本地文件包含
CVE 編號 CVE-2025-60085
緊急程度
CVE 發布日期 2026-04-25
來源網址 CVE-2025-60085

Learnify 主題中的關鍵本地文件包含漏洞 (≤ 1.15.0) — WordPress 網站擁有者的立即步驟

2026-04-25 | WP‑Firewall 安全團隊

概括

在 Learnify WordPress 主題中披露了一個關鍵的本地文件包含 (LFI) 漏洞,影響版本 ≤ 1.15.0 (CVE-2025-60085)。該問題允許未經身份驗證的攻擊者從網絡伺服器中包含和顯示本地文件。報告的漏洞具有高嚴重性 (CVSS 8.1),並且可以大規模利用 — 允許攻擊者洩露敏感文件,例如 wp-config.php, 、環境文件或任何可讀的伺服器端文件。這可能導致憑證洩露、數據庫妥協和根據環境的完全網站接管。.

如果您運行 Learnify 或使用它的網站,請仔細閱讀這篇文章。我們解釋了漏洞的含義、攻擊者如何濫用它、如何檢測利用跡象,以及我們建議的逐步緩解和事件響應過程。我們還展示了實用的 WAF 規則和伺服器加固指導,以立即減少攻擊面。.


什麼是本機檔案包含 (LFI)?

本地文件包含 (LFI) 是一類在網絡應用程序中出現的漏洞,當用戶控制的輸入用於選擇和包含伺服器上的文件而未經適當驗證時會發生。在基於 PHP 的網站中,例如,這可能看起來像:

  • include($_GET['template']);
  • require_once($_REQUEST['page']);

如果攻擊者可以控制決定包含哪個文件的輸入,他們可以將應用程序指向任意本地文件,並強迫伺服器讀取並輸出其內容。常見後果:

  • 洩露秘密(數據庫憑證、API 密鑰)。.
  • 收集信息以準備進一步的攻擊。.
  • 在允許危險包裝器(php://input、php://filter)或啟用遠程文件包含的環境中,可能會發生遠程代碼執行 (RCE)。.

LFI 可以使用簡單的遍歷字符串 (../../../../) 和包裝技術 (php://filter) 來安全地讀取文件,在直接包含不會打印文件內容的上下文中。.


為什麼這個 Learnify LFI 是危險的

關於此事件的關鍵事實:

  • 影響 Learnify 主題版本 ≤ 1.15.0。.
  • CVE: CVE-2025-60085。.
  • 所需特權:無(未經身份驗證)。.
  • CVSS:8.1(高)。.
  • 目前沒有官方供應商的修補程式可用(網站擁有者必須採取緩解措施)。.

為什麼這個特定的LFI是高優先級問題:

  1. 未經身份驗證:攻擊者不需要憑證即可嘗試利用。.
  2. 易於自動化:LFI檢查可以通過自動掃描器在數千個網站上運行。.
  3. 敏感目標文件:WordPress將數據庫憑證和鹽存儲在 wp-config.php, ,使這個文件成為主要目標。.
  4. 可鏈接性:LFI可以與其他錯誤配置(弱文件權限、可寫插件/主題目錄、危險的PHP包裝器)鏈接,以升級到RCE或持久後門安裝。.

因為這些因素,運行易受攻擊的Learnify版本的網站應立即採取行動。.


技術細節(攻擊者通常如何利用LFI)

雖然確切的易受攻擊參數名稱可能因主題版本而異,但LFI的利用模式遵循常見步驟。以下我們解釋攻擊者會使用的一般方法——以便您能夠識別並防範。.

  1. 尋找入口點
    - 攻擊者尋找調用 包括, 規定, file_get_contents, 的主題文件,或類似的函數,這些函數的變量受到GET/POST/ cookie值的影響。.
    - 風險模式示例: include( $theme_dir . '/' . $_GET['tpl'] );
  2. 路徑遍歷
    - 攻擊者提交包含遍歷序列的有效負載:
        – ../../../../etc/passwd
        – ../../../../wp-config.php
    - 許多伺服器通過在包含二進制文件時返回錯誤來防止讀取文件。攻擊者然後使用包裝器。.
  3. 使用包裝器讀取文件(常見技術)
    php://filter/convert.base64-encode/resource=path/to/file — 在包含時對文件應用過濾器以進行 base64 編碼,使其在響應中可打印。.
    – 示例有效負載:
        – ?tpl=php://filter/convert.base64-encode/resource=../../../../wp-config.php
  4. 空字節和編碼技巧
    – 在舊版 PHP 和伺服器設置中,攻擊者可能會使用空字節 (%00) 截斷來繞過後綴檢查。許多現代版本減輕了這一點,但在自動掃描中仍然是一個常見的有效負載:
        – ?tpl=../../../../wp-config.php
  5. 後利用步驟
    – 如果找到 wp-config 憑據,攻擊者會使用它們訪問數據庫或創建管理用戶,上傳後門或竊取其他秘密。.
    – 如果文件上傳可訪問且未經清理,攻擊者可能會上傳 PHP shell 並獲得 RCE。.

一個負責任的披露指出,Learnify 主題的包含邏輯未能正確清理用戶提供的路徑,從而啟用了上述技術。.


要尋找的示例指標和惡意請求模式

檢查您的網絡伺服器日誌和 WAF 日誌中包含這些模式的請求:

  • php://filter/convert.base64-encode/resource=
  • .... 或者 ../ 重複的(路徑遍歷)
  • %00 或空字節編碼嘗試
  • 對主題 PHP 文件的請求,查詢字符串異常,如 ?tpl=... 或者 ?page=... (檢查任何看起來像是選擇模板的參數)
  • 響應中的長 base64 字符串(表示文件內容已編碼並返回)

可疑請求行範例:

GET /wp-content/themes/learnify/somefile.php?template=php://filter/convert.base64-encode/resource=../../../../wp-config.php HTTP/1.1

如果您看到這種模式,請將其視為高優先級 — 立即隔離並調查。.


立即行動檢查清單(在最初幾小時內該做什麼)

如果您運行的網站使用 Learnify ≤1.15.0,請立即執行以下操作:

  1. 將網站置於維護模式(如果可行)或應用臨時訪問控制(IP 白名單)以減少暴露。.
  2. 切換到乾淨的主題(WordPress 默認)或從公共目錄中移除易受攻擊的主題。不要讓易受攻擊的主題保持啟用狀態。.
  3. 如果發布了修補的主題版本,請立即應用更新。如果尚未存在官方修補,請按照以下緩解措施進行。.
  4. 設置 WAF 規則(虛擬修補)以阻止包含遍歷序列或包裝器使用的請求(請參見“WAF 規則”部分中的示例規則)。.
  5. 更改 WordPress 數據庫密碼和可能存儲在 wp-config.php 和其他配置文件中的任何服務憑證 — 但僅在您確保備份和完整性檢查後,因為妥協可能仍然存在。.
  6. wp-config.php 修復後輪換密鑰和鹽。.
  7. 掃描網站以查找 webshell、可疑文件和修改的時間戳。.
  8. 如果檢測到妥協,請從經過驗證的乾淨備份中恢復。.
  9. 增加監控:啟用文件完整性監控、審計日誌和警報。.

如果您沒有技術能力執行所有步驟,請聯繫您的主機提供商或安全團隊,並提供您找到的指標。.


如何檢測您的網站是否被利用

即使您關閉了漏洞,您仍必須驗證它是否在之前被利用過。.

檢查:

  • wp-content/上傳, 可濕性粉劑內容/主題, wp-內容/插件, ,或其他意外位置。.
  • WordPress 中的新管理員用戶(檢查 wp_用戶 表)。.
  • 可疑的排程任務(cron jobs)或資料庫中的未授權 cron 條目。.
  • 伺服器向未知 IP 的外部連接(檢查防火牆/主機日誌)。.
  • 意外的高 CPU/IO 使用率或流量激增。.
  • 慢查詢日誌中不尋常的資料庫查詢或使用先前未見帳戶的查詢。.
  • 不明的 PHP 檔案或包含編碼腳本的檔案 評估, base64_decode, 或者 gzinflate.

建議的工具:

  • 伺服器級別的檔案完整性檢查(類似 tripwire)。.
  • WordPress 安全掃描器(優先選擇提供代碼級掃描和啟發式分析的工具)。.
  • 對檔案和資料庫內容進行全面的惡意軟體掃描。.
  • 對關鍵檔案進行手動審查(wp-config、.htaccess、插件/主題資料夾中的 index.php)。.

如果發現妥協的證據,請遵循下一部分的事件響應步驟。.


事件響應:逐步操作手冊

如果確認被利用,請按以下步驟進行:

  1. 包含
    – 將網站下線或阻止流量以防止進一步損害。.
    – 撤銷被妥協的憑證和 API 金鑰。.
    – 如果可能,將伺服器與網路隔離。.
  2. 保留證據
    – 備份日誌(網頁伺服器、資料庫、應用程式日誌)和磁碟映像。.
    – 不要覆蓋日誌 — 保留時間戳以便進行取證分析。.
  3. 根除
    – 移除所有發現的後門、shell 和惡意腳本。.
    – 從乾淨的來源重新安裝 WordPress 核心、插件和主題。.
    – 如果懷疑伺服器級持久性,則從映像重建伺服器。.
  4. 恢復
    – 從乾淨的備份恢復(在遭到入侵之前進行的備份)。.
    – 應用所有可用的安全補丁和加固措施。.
    – 更改所有密碼並輪換金鑰和鹽值。.
  5. 復原後
    – 加強監控和日誌記錄。.
    – 進行事後分析:入侵是如何發生的?哪些控制措施失效了?
    – 教育團隊並更新您的事件響應計劃。.
  6. 通知
    – 通知利益相關者、託管提供商,以及在您的管轄區內如有需要的客戶或監管機構。.

減少LFI風險的加固建議

即使在立即緩解之後,採取這些長期防禦措施:

  1. 最小特權原則
    – 確保文件和目錄的權限最小化。大多數WordPress文件應該可由網頁伺服器讀取,但不可寫入,除了 wp-content/上傳 需要寫入訪問權限的上傳。.
    – WordPress使用的數據庫帳戶應僅具有必要的權限。.
  2. PHP配置
    – 禁用 allow_url_include.
    – 如果可能,禁用未使用的包裝器。.
    – 使用 open_basedir 以限制PHP對目錄的訪問。.
    – 禁用 exec, shell_exec, passthru, 系統 如果不需要,限制貢獻者上傳 HTML/JS 的能力。.
  3. 禁用內建的插件和主題編輯器
    – 添加到 wp-config.php:
    定義('DISALLOW_FILE_EDIT', true);
    定義('DISALLOW_FILE_MODS', true); // 限制從WP管理界面安裝/更新插件/主題
  4. 安全上傳
    – 防止直接執行 PHP 檔案 wp-content/上傳 透過添加伺服器規則(請參見下面的 .htaccess/nginx 區塊範例)。.
  5. 使用強大且獨特的鹽值和金鑰(在修復時輪換)
    – 更改金鑰將使活動的身份驗證 cookie 無效 — 在事件發生後很有用。.
  6. 定期備份並測試恢復
    – 保持頻繁的離線備份並定期測試恢復。.
  7. 使用分階段升級和代碼審查
    – 對於正在積極開發的主題/插件,審查第三方代碼或限制使用,直到安全狀態得到驗證。.

實用的 WAF 規則和伺服器級緩解措施

當官方修補程式尚未可用時,虛擬修補(WAF)可以爭取時間。以下是您可以在常見 WAF 系統中使用或作為網頁伺服器級別控制的範例規則。請小心調整和測試 — 不正確的規則可能會阻止合法流量。.

重要的模式檢測以阻止:

  • 任何包含的參數值 php://filter
  • 任何包含多個的參數 ../ 序列
  • 空字節嘗試 %00
  • 嘗試包含具有敏感檔名的檔案(wp-config.php, .env, /etc/passwd)

範例 ModSecurity/Core 規則語言(CRS)樣式規則:

# 阻止常見 LFI 攻擊簽名"

Nginx 基於位置的規則以拒絕 php://filter 或遍歷嘗試:

if ($request_uri ~* "(php://filter||\.\./){1,}") {

Apache .htaccess 有效的片段以阻止上傳中的 PHP 執行:

# 保護上傳 - 防止 PHP 執行

更細緻的方法:僅阻擋可疑請求,允許安全請求。在生產環境中應用之前,先在測試環境中測試規則。.


我們在 WP‑Firewall 的幫助(管理防火牆 + 緩解措施)

在 WP‑Firewall,我們的運作假設是:主題/插件中會發現漏洞。最快、最不具干擾性的保護是通過管理的 WAF 進行虛擬修補,實時阻擋利用嘗試,同時您計劃並應用永久修復。.

我們提供和推薦的核心保護:

  • 管理的 WAF 規則根據新披露自動更新——阻擋利用有效載荷(php://filter、遍歷序列、嘗試獲取 wp-config.php)在它們到達 PHP 之前。.
  • 惡意軟體掃描和簽名檢測,以在利用嘗試後不久檢測 webshell 和可疑修改。.
  • 文件完整性監控和每日掃描,以檢測意外的文件變更。.
  • 事件警報和支持,以幫助分類發現並實施緩解措施。.
  • 虛擬修補能力,即使主題沒有官方修補,您也可以在降低風險的同時繼續運行。.

我們建議將即時虛擬修補與上述伺服器加固步驟、輪換憑證和實施持續監控相結合。.


示例檢測正則表達式和日誌分析提示

監控網頁伺服器日誌並對這些模式實施警報:

正則表達式(不區分大小寫)以檢測可能的 LFI 探測:

(?i)(php過濾|php://filter|(\.\./){2,}|(\.\.\\){2,}||wp-config\.php|/etc/passwd)

觸發警報的日誌條目:

  • GET /wp-content/themes/learnify/… ?…=php://filter/convert.base64-encode/resource=../../../../wp-config.php
  • 任何使用的請求 php:// 包裝器
  • 返回 200 並帶有 base64 編碼字符串的請求——HTML 頁面中的 base64 通常是文件內容讀取的指標。.

設置自動任務每日掃描日誌以查找這些模式並通知管理員。.


示例安全測試以檢查漏洞(僅限網站擁有者)

如果您是網站擁有者並需要測試您的 Learnify 安裝是否存在漏洞,請遵循此安全的只讀檢查程序。請勿嘗試利用其他人的網站。.

  1. 使用非破壞性的 php://filter 請求,僅僅嘗試對已識別的文件進行 base64 編碼(例如,, readme.html 在主題目錄中)。.
  2. 構建類似於以下的請求:
GET /wp-content/themes/learnify/index.php?tpl=php://filter/convert.base64-encode/resource=inc/readme.html
  1. 如果響應包含一個 base64 字串,解碼後為文件內容,則該主題中的功能易受包含模式濫用的影響。停止測試並進行緩解。.

重要: 僅在您擁有或運營的網站上進行測試。請勿在第三方網站上進行測試。.


補救決策樹:更新 vs 臨時緩解 vs 移除

  • 如果有官方修補的主題可用:立即更新,然後遵循驗證檢查清單(文件完整性掃描,密碼輪換)。.
  • 如果沒有官方修補:
    • 將主題從活動使用中移除(切換到默認主題)。.
    • 應用 WAF 規則和伺服器限制以阻止利用嘗試。.
    • 與主題供應商合作以獲取時間表,或考慮用維護的替代品替換主題。.
  • 如果因業務原因無法移除主題:
    • 將網站放在嚴格的訪問控制(IP 白名單)後以進行管理訪問。.
    • 應用嚴格的 WAF 規則,僅允許最小功能。.
    • 安排專門的監控和頻繁的完整性掃描。.

修復後:驗證和監控

應用修復後,驗證您的環境:

  1. 重新運行自動掃描器。.
  2. 驗證是否存在意外的管理帳戶或排程任務。.
  3. 檢查是否有意外的網路連接或DNS變更。.
  4. 檢查備份以尋找早期的妥協指標(確保備份是乾淨的)。.
  5. 在修復後至少持續加強監控30天。.

常見問題解答

問:LFI會導致遠端代碼執行嗎?
答:LFI本身是一種文件包含/讀取漏洞。如果攻擊者能夠包含他們可以控制的文件(例如,上傳的PHP文件)或將LFI與其他錯誤配置(可寫目錄、危險包裝器或惡意插件)鏈接,則可能會發生RCE。.
問:我的網站使用Learnify的子主題——我會受到影響嗎?
答:可能會。子主題從父主題繼承核心代碼。如果父主題代碼中存在漏洞邏輯,且父主題是Learnify ≤1.15.0,則您可能會受到影響。檢查父主題版本並採取緩解措施。.
問:我已經修補了主題——我還需要更換憑證嗎?
答:是的。如果網站有任何暴露的可能性,請更換網站上使用的密鑰、數據庫密碼和API令牌。修補可以防止未來的利用,但不會消除之前發生的妥協。.
問:我如何能在未來獲得類似漏洞的通知?
答:訂閱可信的安全資訊源,並保持您的WAF簽名和惡意軟體掃描器更新。對已安裝的主題和插件實施自動漏洞監控。.

今天開始保護您的網站 — 提供免費計劃

如果您希望在執行上述技術修復步驟時獲得直接且即時的保護層,我們的管理免費層為WordPress網站提供基本防禦。免費計劃包括帶有虛擬修補的管理防火牆、網路應用防火牆(WAF)、惡意軟體掃描、無限帶寬保護以及對OWASP前10大風險的緩解。註冊簡單快速——您可以在幾分鐘內開始阻止利用嘗試。.

在此了解更多或註冊免費計劃

升級選項:我們還提供經濟實惠的付費計劃,增加自動惡意軟體移除、IP黑名單/白名單、每月安全報告以及針對企業和機構的高級管理服務。如果您運行多個網站或需要主動修復支持,我們的高級計劃提供完整的管理安全方案。.


WP‑Firewall安全專家的最後想法

此Learnify LFI披露提醒我們,任何主題或插件都可能引入關鍵弱點。應對此類事件最重要的方面是速度和完整性:

  • 迅速應用緩解措施(虛擬修補和臨時移除)。.
  • 調查的完整性(攻擊者是否獲得了任何東西?訪問了什麼?)。.
  • 長期改進(加固、監控、最小特權)。.

如果您需要一個可以管理虛擬修補並為您的 WordPress 系統提供持續檢測和響應的合作夥伴,WP‑Firewall 的管理服務正是為此而設計——實時保護流量,掃描後利用指標,並幫助您以最小的業務中斷進行恢復。.

如果您管理多個 WordPress 網站,現在是檢查您的主題庫、確認版本並應用上述步驟的時候。如果您需要幫助來篩選特定指標,我們會發布詳細的修復指南並為需要加速協助的客戶提供支持。保持警惕,將任何 LFI 探測視為潛在的嚴重問題——攻擊者會自動化這些檢查,易受攻擊的網站面臨真正的風險。.


附錄 A:快速檢查清單(複製/粘貼)

  • 確認是否安裝了 Learnify ≤ 1.15.0。.
  • 切換到不同的主題或停用 Learnify。.
  • 應用 WAF 規則以阻止 php://filter 和路徑遍歷嘗試。.
  • 掃描網頁殼和未經授權的文件修改。.
  • 旋轉數據庫憑證和 WP 鹽。.
  • 如果檢測到妥協,從乾淨的備份中恢復。.
  • 實施文件權限加固。.
  • 啟用文件完整性監控和警報。.
  • 在修復後監控日誌 30 天。.

附錄 B:其他資源和參考資料

(如果您需要幫助實施特定的 WAF 規則或在您的環境中進行安全漏洞掃描,我們的 WP‑Firewall 安全團隊可以協助。我們提供針對各種規模網站的自助服務和管理選項。)


感謝您重視安全性。如果您對上述步驟有任何疑問或想要針對您的網站獲得具體指導,請聯繫 WP‑Firewall 支援或註冊免費計劃以獲得即時的管理保護: https://my.wp-firewall.com/buy/wp-firewall-free-plan/


wordpress security update banner

免費接收 WP 安全周刊 👋
立即註冊
!!

註冊以每週在您的收件匣中接收 WordPress 安全性更新。

我們不發送垃圾郵件!閱讀我們的 隱私權政策 了解更多。