近日,国外安全研究人员在大量攻击数据中发现了一个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参数获取远程文件内容,经过简单处理满足<pre>*</pre>格式的数据,最后获取*号里面的数据赋值给变量array,最后通过eval函数执行,导致代码执行。
2、漏洞复现
环境搭建:下载安装WordPress程序,然后登录后台安装Social Warfare插件,使用构造好的payload进行测试,最终导致xss及远程代码执行。
3、处置建议
Wordpress官方插件库已经更新了该插件版本,该插件的用户可以更新至该插件的最新版本
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。