【WordPress专题01】前台管理员账户创建漏洞(CVE-2025-4334)漏洞分析及POC

admin 2025-12-14 01:40:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: WordPressSimpleUserRegistration插件存在CVE-2025-4334权限提升漏洞,影响所有6.3及之前版本。该漏洞源于插件在注册过程中对用户元数据缺乏足够限制,特别是未对role参数进行验证,允许未经身份验证的用户通过添加role=administrator参数创建管理员账户。文章提供了漏洞复现环境搭建方法和Python利用脚本,并深入分析了漏洞产生的代码层面原因,指出WordPress核心函数wp_insert_user缺乏角色验证机制是导致漏洞的关键因素。建议用户立即更新插件至最新版本以修复此安全风险。 综合评分: 86 文章分类: 漏洞分析,WEB安全,漏洞预警,渗透测试,代码审计


cover_image

【WordPress专题01】前台管理员账户创建漏洞(CVE-2025-4334)漏洞分析及POC

原创

a1batr0ss

天翁安全

2025年11月3日 18:02 江苏

免责声明:本公众号所发布的全部内容,包括但不限于技术文章、POC脚本、漏洞利用工具及相关测试环境,均仅限于合法的网络安全学习、研究和教学用途。所有人在使用上述内容时,应严格遵守中华人民共和国相关法律法规以及道德伦理要求。未经明确的官方书面授权,严禁将公众号内的任何内容用于未经授权的渗透测试、漏洞利用或攻击行为。 所有人仅可在自己合法拥有或管理的系统环境中进行本地漏洞复现与安全测试,或用于具有明确授权的合法渗透测试项目。所有人不得以任何形式利用公众号内提供的内容从事非法、侵权或其他不当活动。 如因违反上述规定或不当使用本公众号提供的任何内容,造成的一切法律责任、经济损失、纠纷及其他任何形式的不利后果,均由相关成员自行承担,与本公众号无任何关联。

不错过最新的漏洞POC

为保证您可以在第一时间接收到本公众号分享的漏洞复现及POC信息,建议您在公众号“天翁安全”主页界面将“天翁安全”设为星标

漏洞介绍

WordPress 的 Simple User Registration 插件在所有版本(包括 6.3 及之前版本)中存在权限提升(Privilege Escalation)漏洞。该漏洞的原因是:插件在注册过程中对可提交的用户元数据(user meta values)缺乏足够的限制。攻击者可利用这一缺陷,在未经过身份验证的情况下注册账户并获得管理员权限。

漏洞版本

| 插件 | 版本 | | — | — | | wp-registration | <= 6.3 |

部署漏洞环境

“CVE-2025-4334复现环境” 详见文末

在“CVE-2025-4334复现环境”文件夹内,执行一条命令即可部署环境

docker-compose up -d

激活插件后,访问 http://127.0.0.1/register/ 即可查看到插件的注册界面

漏洞利用

“CVE-2025-4334.py”漏洞利用脚本 详见文末

执行Python脚本进行文件上传漏洞利用

python&nbsp;CVE-2025-4334.py -u http://127.0.0.1&nbsp; --form http://127.0.0.1/register/

利用创建的管理员用户名和密码登录后台

漏洞分析

我们首先使用正常注册点来注册test用户

注册成功发现是订阅者的只是低权限而非管理员权限,而我们漏洞利用的目标是注册一个管理员账户

接下来开始漏洞分析,首先介绍wordpress里的一个特性

以 wp_ajax和 wp_ajax_nopriv前缀注册的钩子,可以通过如下链接访问。区别是 wp_ajax需要登录的用户,而 wp_ajax_nopriv不需要登录校验

http://[WordPress路径]/wp-admin/admin-ajax.php?action=xxx

在wp-registration插件中,我们发现了 wp_ajax_nopriv_wpr_submit_form钩子调用了wpr_hooks_submit_form函数

于是来跟一下 wpr_hooks_submit_form函数,首先是一个wpr_nonce的校验,这个wordpress里防止 CSRF 攻击的一个随机值。

这个在表格界面的前端就能够提取到,到时候脚本里创一个Session就能绕过。(后面有个表格id也是同理)

继续跟下去发现 $_POST['wpr']存储到了 $fields参数中

接着是一堆不重要的校验,包括用户名和邮箱名是否重复。然后就到了重要的 create_user函数,之前也没有出现对用户角色的校验。

继续跟一下 create_user函数,也是没有任何对角色的校验就到了 wp_insert_user函数。此时 $wp_fields 参数就是之前的 $_POST['wpr'][wp_field]

跟到 wp_insert_user函数里面,发现了插入数据库的 insert函数,但是该函数的参数不包括“role”,也就是某个用户是否为管理员用户不是在通过这个函数确定的,所以我们继续往下看。

再往下面有个 set_role函数,我进去看了下,里面主要功能就是把该用户的角色设置为你传入的 $userdata['role'] 。

到这里我们可以总结一下:

  1. 个性:我们只需要在原有表格POST参数的基础上加一个role参数设置为administrator即可添加添加管理员用户。
  2. 共性: wp_insert_user函数是wordpress本身的函数,其内部没有校验角色的过滤,所以如果在进入这个函数前如果role参数仍然设置为administrator,基本就能造成漏洞。

知识星球

“CVE-2025-4334.py”漏洞利用脚本、CVE-2025-4334复现环境、CVE-2025-4334详细漏洞分析现已全部发布至知识星球,大家可在知识星球内获取,自行搭建环境、学习复现。

星球不定期更新市面上最新的热点漏洞及复现环境,欢迎加入交流和学习

亮点一、市面热点漏洞详细分析,与deepseek本地部署息息相关的:Ollama任意文件读取漏洞(CVE-2024-37032)详细分析

亮点二、近日最新披露的明星漏洞POC:APT组织积极利用的WinRAR命令执行漏洞(CVE-2025-8088)

亮点三、框架漏洞专题-若依:

若依某漏洞分析:

亮点四、实战渗透测试技巧分享&讨论:记一次利用测试站打到正式站的渗透测试

实战攻防演练技巧:记某次攻防演练中捕捉到的命令执行0day

亮点五、一些比较新奇有趣的漏洞分享:Windows拖拽图标而触发的漏洞

亮点六、国外最新技术文章分享:只需一封邮件,AI Agent就能悄悄偷走你Google Drive里的文件

知识星球加入方式如下,欢迎师傅们加入进行学习和讨论!

星球价格会随着成员数量的增加而持续增加


评论:0   参与:  10