WordPress 高危漏洞分析以及修复方案

                
 
                  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公司。
分享: