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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-11391 — WordPress PPOM for WooCommerce 插件 <= 33.0.15 存在 SQL 注入漏洞 | Kitploit
工具/GitHubGitHub/moritakaaz/cve-2025-11391
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试学习与教育数据库安全
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

WordPress PPOM for WooCommerce 插件 <= 33.0.15 存在 SQL 注入漏洞

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PPOM for WooCommerce <= 33.0.15 中的未认证盲 SQL 注入

本仓库包含针对 WordPress 插件 "PPOM for WooCommerce" 中未认证的基于时间的盲 SQL 注入漏洞的概念验证(PoC),该漏洞影响版本 33.0.15 及更早版本。

漏洞详情

  • 插件: PPOM for WooCommerce
  • 受影响版本: <= 33.0.15
  • 已修补版本: 33.0.16
  • 漏洞类型: 未认证的基于时间的盲 SQL 注入
  • CVE ID: CVE-2025-11391(用于跟踪目的)

描述

该漏洞的存在是因为插件在将用户提供的输入用于 SQL 查询之前未能正确清理。具体来说,classes/plugin.class.php 中的 get_product_meta() 函数直接将 $meta_id 参数拼接进 SQL 查询,而没有使用预处理语句。

易受攻击的代码 (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

未认证的攻击者可以通过构造恶意载荷,并在将产品添加到购物车时将其注入 ppom[fields][id] 参数来利用此漏洞。这使攻击者能够执行任意 SQL 命令,例如时延函数(SLEEP()),从而确认漏洞存在,并可能逐字符地窃取数据库中的敏感信息。

当插件设置中的 "启用旧版价格计算" 选项处于激活状态时,漏洞会被触发,因为这会强制应用程序在购物车操作期间使用易受攻击的代码路径。

仓库结构

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).

设置与复现步骤

1. 环境要求

  • 一个本地 Web 服务器环境(例如 XAMPP、WAMP、MAMP)。
  • 一个全新的 WordPress 安装。
  • 已安装并激活 WooCommerce 插件。
  • 已安装 requests 库的 Python 3.x(pip install requests)。

2. 实验环境搭建

  1. 启动本地 Web 服务器(Apache、MySQL)。
  2. 在某个目录中安装 WordPress(例如 /htdocs/wp4hacking/)。
  3. 从 WordPress 仪表盘安装并激活 WooCommerce 插件。
  4. 上传 woocommerce-product-addon/ 目录中的 .zip 文件,安装本仓库提供的易受攻击版本的 woocommerce-product-addon(v33.0.15)。
  5. 激活 "PPOM for WooCommerce" 插件。

3. 易受攻击的配置

  1. 在 WordPress 仪表盘中,进入 PPOM Fields > 设置。
  2. 找到 "启用旧版价格计算" 选项,并勾选以启用它。
  3. 保存更改。
  4. 进入 PPOM Fields,创建一个新的字段组(例如,命名为 "PoC Group")。
  5. 在该组内,添加一个文本输入字段。给它一个标题(例如,"SQL Injection")和一个数据名称(例如,sql_injection)。
  6. 进入 产品 > 添加新产品,创建一个新的 WooCommerce 产品。
  7. 为产品指定名称(例如,"产品测试")和价格。
  8. 在产品编辑页面上,找到 "PPOM Fields" 选项卡,并选择你创建的 "PoC Group"。
  9. 发布产品。记下产品 ID(例如,72)。

漏洞利用

提供的 exploit.py 脚本通过注入 SLEEP() 命令并测量服务器响应时间来确认漏洞。

如何运行漏洞利用脚本

  1. 打开 exploit.py 文件并配置以下变量:

    • PRODUCT_URL:你创建的易受攻击产品页面的完整 URL。
    • add_to_cart_data['add-to-cart']:易受攻击产品的 ID。
  2. 在终端中运行脚本:

    root@kitploit:~
    python exploit.py
    

预期输出

如果目标易受攻击,服务器响应时间将超过 SLEEP() 的时长,导致脚本超时。脚本会将此超时正确解释为利用成功。

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

缓解措施

  • 立即更新: 将 "PPOM for WooCommerce" 插件升级到 33.0.16 或更高版本。
  • 使用预处理语句: 已修补版本使用 $wpdb->prepare() 来正确清理输入,从而防止 SQL 注入。

修复后的代码 (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

免责声明

本 PoC 仅用于教育和研究目的。请勿在非您拥有或未经明确授权测试的系统上使用。作者不对因使用此脚本而导致的任何误用或损坏负责。

下载工具