前言
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress经常爆出漏洞基本都是它的插件存在安全问题。
漏洞复现
首先搭建worepress,我的版本是4.4。然后进入后台下载插件Quizlord,版本是2.0。
下载、安装完成后,需要点击启用插件。
根据exploit-db给出的漏洞详情,找到触发漏洞的位置。
进入后台选择Quizlord插件
此时浏览器的地址栏正好对应poc中的referer内容,现在只要使用火狐插件hackbar并根据POC构造POST请求。
点击execute即可发送该POST请求。
请求成功后,返回是一个空白页。
返回上一页并刷新即可触发该漏洞。
通过复现这个漏洞,我们可以知道它属于后台存储型XSS,且它的危害其实并不是很大。
需要进入后台,因此必须得知道后台用户的账号和密码。
下面我们来简单分析一下漏洞的成因。
漏洞成因分析
WordPress插件源码位置:
\wp4_4\wp-content\plugins\
进入Quizlord插件目录,找到quizlord.php文件。
下图是quizlord.php文件的内容
根据POC快速定位到函数。发现POST传入的数据并没有被程序过滤就写入了数据库中。
修复方案
利用htmlentities()函数转义html实体。
再次提交POC后,无法触发XSS漏洞。
参考链接
https://www.exploit-db.com/exploits/45307/
*本文作者:看不尽的尘埃,转载请注明来自FreeBuf.COM