近日,国外安全研究人员在大量攻击数据中发现了一个WordPress plugins Social Warfare远程代码执行漏洞。该漏洞位于social-warfare\lib\utilities\SWP_Database_Migration.php文件中的eval()函数,该函数能够运行攻击者在“swp_url”GET参数中定义的PHP代码。此漏洞允许攻击者getshell接管整个网站,甚至是服务器。安全狗海青实验室已于昨日第一时间响应并发布预警信息,我们随后进行了进一步的研究分析,现将细节公布。
1、漏洞分析
在social-warfare\lib\utilities\SWP_Utility.php处通过获取swp_debug参数
在调用漏洞文件social-warfare\lib\utilities\SWP_Database_Migration.php进入处理流程
在202行处调用了is_admin()函数,该函数是wordpress的内置布尔型函数,取值取决于文件所处位置,前端默认而False,而后端默认为True,而该文件所处为后端,is_admin取值为真,if条件里的判断为永假,导致了该模块页面可以未进行身份验证直接进行访问。
接下来通过获取swp_url参数获取远程文件内容,经过简单处理满足
*
格式的数据,最后获取*号里面的数据赋值给变量array,最后通过eval函数执行,导致代码执行。
2、漏洞复现
环境搭建:下载安装WordPress程序,然后登录后台安装Social Warfare插件,使用构造好的payload进行测试,最终导致xss及远程代码执行。
3、处置建议
Wordpress官方插件库已经更新了该插件版本,该插件的用户可以更新至该插件的最新版本
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!