40

ECShop全系列版本远程代码执行高危漏洞分析

 5 years ago
source link: https://xz.aliyun.com/t/2689?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

预警

2018年9月1日,阿里云态势感知发布预警,近日利用ECShop全系列版本的远程代码执行漏洞进行批量化攻击量呈上升趋势,该漏洞可直接导致网站服务器沦陷,黑客可通过WEB攻击直接获得服务器权限,利用简单且危害较大。因此,阿里云安全专家提醒ECShop系统用户及时进行修复。

早在1个月前阿里云态势感知就捕获到利用ECShop远程代码执行漏洞进行攻击的真实案例,由于当时该漏洞被利用进行攻击的量不大,阿里云安全团队在做好防御此类漏洞大规模利用攻击的同时,也持续监控该漏洞的利用趋势。

本文对此漏洞的原理,漏洞攻击利用实例以及影响做了全面分析。在官方补丁没放出之前,建议受影响用户可参考文中的修复建议,及时进行修复。使用阿里云WAF的客户无需升级补丁即可防御该漏洞。

漏洞原理

该漏洞产生的根本原因在于ECShop系统的user.php文件中,display函数的模板变量可控,导致注入,配合注入可达到远程代码执行的效果。使得攻击者无需登录等操作,直接可以获得服务器的权限。

首先从user.php文件入手,代码中可以看到,系统读取HTTP_REFERER传递过来的

内容赋值给$back_act变量。

aEFNJnr.png!web

接着以$back_act的值为参数,调用assign方法。

YzqquyJ.png!web

(/user.php)

assign方法的作用是把可控变量传递给模版函数,紧接着再通过display方法展示到页面上。接下来跟进display内部的insert_mod方法。

VjEzAj3.png!web (/includes/cls_template/php)

insert_mod方法返回了一个动态函数调用,该函数名和参数均可控,根据攻击者

的利用方法,我们可以得知调用的函数名为insert_ads,接下来跟进这一方法。

6ZzAZjR.png!web

(/includes/lib_insert.php)

不难发现,$arr['id']和$arr['num']这两个变量,都是外部可控的输入点,在构造攻击向量的过程中执行的SQL语句如下。

uiuIFvq.png!web (打印$sql变量)

6NbYniM.png!web (sql语句执行结果)

接着,程序调用了fetch方法,参数由$row['position_style']变量赋值,这一变量同样为外部可控输入点。

JrE3maI.png!web (/includes/lib_insert.php)

这里fetch函数调用了危险函数,这就是最终触发漏洞的点。但是参数在传递之前要经过fetch_str方法的处理。

aaQVryy.png!web (/includes/cls_template.php)

最终输入点依次经过fetch_str、select、get_val,最终传入make_var方法。

RjQNJj6.png!web (/includes/cls_template.php)

最终传递到eval的字符串为:

ZfABJfz.png!web

漏洞攻击实例

阿里云态势感知于2018年8月1日监控到云上首例此漏洞利用。黑客通过HTTP 请求头的Referer字段植入恶意代码如下:

rmqu63b.png!web

当黑客恶意代码成功被执行后,会尝试访问链接:' http://uee.me/MrJc '

具体的payload代码如下所示:

zeiIZbz.png!web

其中 http://uee.me/MrJc是一个短连接,其完整的url为:http://www.thaihaogo.com/images/201608/4.jpg。

此文件下载到成功后会重命名为1.php,实际上4.jpg文件就是一个混淆后的php木马。

InYVzmv.png!web

去除混淆部分,将木马执行逻辑还原如下:

AV7R3aI.png!web

该木马中的PHP代码会去下载一个功能齐全的WEB木马,地址为: http://i.niupic.com/images/2017/05/26/Lfkavl.gif

该WEB木马的功能详情如下:

mqy6Rnu.png!web

漏洞影响

阿里云应急中心测试发现,ECShop全系列版本(包括2.x、3.0.x、3.6.x)均存在该远程代码执行漏洞。阿里云态势感知数据研究中心监控的数据显示,该漏洞利用难度低,影响面广,并已经发现有批量入侵迹象,需要存在相关业务的用户及时关注并进行修补。

专家建议

在官方补丁没放出之前,我们建议站长可以修改include/lib_insert.php文件中相关漏洞的代码,将$arr[id]和$arr[num]强制将数据转换成整型,该方法可作为临时修复方案将入侵风险降到最低。需要修改的部分代码如下:

7VBzYvn.png!web (includes/lib_insert.php )

另外,使用阿里云WAF 的客户无需升级补丁即可防御该漏洞。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK