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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/emadyay/cve-2023-3460
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthentication
GitHubemadyay/cve-2023-3460

CVE-2023-3460

CVE-2023-3460

查看仓库
3年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-3460 - Ultimate Member 插件未授权管理员权限获取 POC

CVSS 评分:9.1

日期:2023/07/04

什么是 Ultimate Member 插件?

Ultimate Member 插件是一个流行的用户注册会员插件,拥有超过 20 万活跃安装量。

Alt text

快速检查

2023 年 7 月 7 日,Ultimate Member 插件中发现了一个严重漏洞,攻击者可以通过权限提升技术创建管理员账户,从而完全控制 WordPress 网站。

那么该漏洞如何利用?

如果我们看一下 WordPress 的角色和权限,它为用户提供了多种角色:超级管理员、管理员、编辑、作者、贡献者 等。那么我们如何获得管理员权限呢?首先,让我们看看 Ultimate Member 插件的工作方式。首先,你需要配置插件以使其正常运行,因此我们需要在 页面 板块中创建几个页面,然后将这些页面链接到 Ultimate Member > 设置,之后我们可以创建新角色,或者直接使用 Ultimate Member 提供的默认角色。

Alt text

现在,我们应该拥有一个正常运行的插件。让我们深入后台看看它是如何工作的。我注册了一个普通用户,角色为 订阅者。查看 MySQL 中的 wp_usermeta 表,可以看到 wp_capabilities 的值被设置为一个序列化数组,其中定义了我们的角色——在本例中是 订阅者。

Alt text

那么我们如何更改 wp_capabilities 的值呢?我们可以在注册时,将 wp_capabilities 作为一个参数传入 POST 请求中,如下所示:

Alt text

但这还没结束。有一个名为 is_metakey_banned 的函数,它会检查几个值,例如 "cap_key"、"wp_capabilities"、"wp_user_level"、"user_activation_key" 等。我们感兴趣的是 wp_capabilities,但如果它在请求体中出现,就会触发 break,从而阻止我们更改角色。

Alt text

从这点出发,我们可以尝试使用几种不同的编码方式,但都不奏效。经过一番研究并借助 AI 的帮助,我发现 WordPress 默认接受重音字符,例如 à, è, ì, ò, ù, À, È, Ì, Ò, Ù。那么,如果我们在请求体中使用这些字符,例如 wp_càpabilities=administrator,会发生什么?它不会在 class-user.php 的第 182 行触发 break,从而绕过 is_metakey_banned 函数。

Alt text

检查 MySQL,我们可以发现值已被修改。

Alt text

但实际上我们并不是管理员,甚至没有获取任何角色。

Alt text

我们确实做了一些事,但要成为管理员,我们需要拥有与管理完全相同的值,其结构如下:a:1:{s:13:"administrator";b:1;}。好,现在让我们尝试将这个值直接传递给我们的参数。

Alt text

再次检查 MySQL,我们确实设置了 wp_capabilities 的值,但这并不是我们期望的结果。

Alt text

它拿到了我们的值并将其转换成了序列化字符串。但看看管理员的 wp_capabilities,它是一个序列化数组——这才是我们想要的。WordPress 有自己的序列化机制,所以我们可以将值作为数组传递,然后让 WordPress 处理剩下的部分。因此,我们的 payload 如下:wp_càpabilities[administrator]=1。

Alt text

最后,我们可以看到 wp_capabilities 的值已更改为 a:1:{s:13:"administrator";s:1:"1";},现在可以以管理员身份登录了。

Alt text

现在,我们可以作为管理员登录。

Alt text

下载工具