CVE-2023-3460 — CVE-2023-3460 | Kitploit
emadyay/cve-2023-3460CVE-2023-3460
CVE-2023-3460
13年前
CVE-2023-3460 - Ultimate Member 插件未授权管理员权限获取 POC
CVSS 评分:9.1
日期:2023/07/04
什么是 Ultimate Member 插件?
Ultimate Member 插件是一个流行的用户注册会员插件,拥有超过 20 万活跃安装量。

快速检查
2023 年 7 月 7 日,Ultimate Member 插件中发现了一个严重漏洞,攻击者可以通过权限提升技术创建管理员账户,从而完全控制 WordPress 网站。
那么该漏洞如何利用?
如果我们看一下 WordPress 的角色和权限,它为用户提供了多种角色:超级管理员、管理员、编辑、作者、贡献者 等。那么我们如何获得管理员权限呢?首先,让我们看看 Ultimate Member 插件的工作方式。首先,你需要配置插件以使其正常运行,因此我们需要在 页面 板块中创建几个页面,然后将这些页面链接到 Ultimate Member > 设置,之后我们可以创建新角色,或者直接使用 Ultimate Member 提供的默认角色。


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



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

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

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

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

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

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

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