WordPress国内外知名的建站系统,开源化,尤其在搜索引擎上代码写的很 友好,整体的开发架构是基于PHP+MySQL数据库组合的博客系统。WordPress的模板以 及插件开发完善的比较多,深受互联网用户的喜欢,尤其第三方api各方接口,都兼容 到WP网站上去,最近WordPress的一个流量统计插件,爆出高危漏洞,受影响版本包括 WordPress4.5、WordPress4.6,以及目前最新的版本,下面SINE安全根据此漏洞进行 详细的分析解剖,以及漏洞修复方案。
我们来看下网站includes目录里的functions/文件下的functions.php functions.php代码里的$search_query函数 .= "`engine` = '{$search_engine}'"把 函数里的数据,直接传入到了$search_engine变量上去。然后在/includes目录下的 functions文件夹里的functions.php文件中wp_statistics_searchengine()调用了 wp_statistics_searchengine_query():Sine安全公司是一家专注于:服务器安全、
网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
我们来看一下这段代码,$search_query = wp_statistics_searchengine_query( $search_engine ); $search_query变量的数值从前面提到的 wp_statistics_searchengine_query()获取数据,然后利用switch执行语句,利用SQL 查询语句加载到数据库里强制执行,导致了WordPress 发生SQL注入。 我们再来看下shortcode.php这个文件里程序代码:
WordPress4.5版本以及日后更新的WordPress版本当中都有提供 Shortcode API接口函
数,允许访问用户在网站前端插入一些特殊符号的代码,WordPress利用接口自动识别
这些前端输入的代码,并根据短代码的变量定义,输出为特定的内容。WP Statistics允
许用户使用Shortcode获取详细的统计数据信息。在WordPress 4.6 中,在调用接口
Shortcode API的时候,网站需要调用/wp-admin/admin-ajax.php这个文件 。Sine安全公
司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全
服务于一体的网络安全服务提供商。
调用wp_ajax_parse_media_shortcode()传过来的数值来完成该SQL注入漏洞的利用,
有个漏洞最鸡肋的地方就是需要用户登陆网站,才能利用该SQL漏洞,对用户的权限
没有限制,即使是订阅者用户权限也可以利用此漏洞,当WordPress网站开放注册并
安装tatistics插件,才可以利用该漏洞,同时因为安装WP系统要求PHP的版本必须大
于等于5.4.0,在PHP5.3.0版本一下,弃用GPC,因此不受GPC版本影响:
WordPress漏洞修复方案:
1.升级WordPress 版本到官方最新版本。
2.升级Shortcode API插件的版本,目前官方已修复漏洞,直接升级到最新版本。
3.如果懂程序代码的话,可以在functions.php代码里加入防SQL注入代码,get
post head 三种方式上去拦截sql非法参数,如果对网站安全不是太懂的话,也可以通过
安全公司解决,国内在网站漏洞修复上做的比较专业的是绿盟跟sinesafe公司。
还没有评论,来说两句吧...