预警| ECShop全系列版本远程代码执行高危漏洞 阿里云WAF已可防御

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全中心 免费版,不限时长
云安全中心 防病毒版,最高20核 3个月
简介:

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

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

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

漏洞原理

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

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

内容赋值给$back_act变量。

a189b67d98948da5a03617d40bbdc02ab3cd9fea

(/user.php)

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

cec9e013038ae03c5cd16e7580501a676506423b

(/user.php)

assign方法的作用是把可控变量传递给模版函数,紧接着再通过display方法展示

到页面上。接下来跟进display内部的insert_mod方法。

1261fd54d120be5264bd8693cc5de11432950a02

(/includes/cls_template/php)

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

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

e7a827290c8efe4c0c443557404ea37bbc4411e7

(/includes/lib_insert.php)

不难发现,$arr['id']和$arr['num']这两个变量,都是外部可控的输入点,在构造攻

击向量的过程中执行的SQL语句如下。

d9af94b0e37dce7b79f438f21ebf4ba989a9708e

(打印$sql变量)

42a32855465e1541b1ba9c733eebd3e09d7f8b32

(sql语句执行结果)

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

c4579afbbcb198e83862b4135cca85b45d329b21

(/includes/lib_insert.php)

这里fetch函数调用了危险函数,这就是最终触发漏洞的点。但是参数在传递之前

要经过fetch_str方法的处理。

44860d16f5cfd68bfb01e7b1ea301e1f6210bbf7

(/includes/cls_template.php)

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

f41aa9c60d86838b5a5e80266bb8bba6b80d0d2e

(/includes/cls_template.php)

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

ed837e4c286b6d512d59a282111c8830529998d7

到此,漏洞原理分析完成,攻击者的恶意代码执行成功。

漏洞攻击利用实例

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

807d6cb9d12a32ddb06edda4e395177d4477389e

当黑客恶意代码成功被执行后,会尝试访问链接:'http://uee.me/MrJc',具体的payload代码如下所示:

ee081b6c1cc9dbd9994d9c881ba1c4b4b01f821b

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

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

111388e6cd45e3560304c7bbf3d309327c33c2d3

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

2ff938521ebf7f19dea6a8ea30af14c325aaf73d

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

0893c452debee8074e0118490d3bce21445a5f02

漏洞影响

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

专家建议

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

d56d577190add41d43a5cba18bc9c5597d3844a4

(includes/lib_insert.php )

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

相关文章
|
6月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
573 6
|
2月前
|
开发框架 安全 .NET
Web安全-文件上传漏洞与WAF绕过
Web安全-文件上传漏洞与WAF绕过
112 4
|
3月前
|
SQL 监控 安全
|
3月前
|
SQL 运维 监控
WAF如何防御常见攻击?
【8月更文挑战第16天】
144 1
|
4月前
|
SQL 运维 安全
WAF如何防御SQL注入?
【7月更文挑战第25天】WAF如何防御SQL注入?
280 9
|
4月前
|
安全 API 开发者
|
6月前
|
SQL 监控 安全
【阿里云云原生专栏】云原生安全体系构建:阿里云云防火墙与WAF的应用
【5月更文挑战第27天】阿里云云防火墙和WAF是构建云原生安全体系的关键产品,提供网络、主机和Web应用多维度防护。云防火墙采用分布式架构抵御网络攻击,确保应用安全稳定;WAF专注Web应用安全,防止SQL注入、XSS和DDoS等威胁。简单部署配置,结合使用可实现全面安全防护,提升企业云上应用安全性,保障业务安全运行。未来,阿里云将持续强化云原生安全建设。
336 1
|
6月前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
应用服务中间件
阿里云的WAF(Web应用防火墙)3.0的虚拟代理
阿里云的WAF(Web应用防火墙)3.0的虚拟代理
190 2
|
云安全 负载均衡 网络协议
阿里云waf简介和如何配置​
阿里云WAF(Web应用程序防火墙)是一种高效、智能的云安全服务,旨在保护Web应用程序免受各种网络攻击的威胁。它可防止诸如SQL注入、跨站点脚本(XSS)和跨站点请求伪造(CSRF)等攻击,有效保障了Web应用程序的安全性与稳定性。 阿里云WAF在Web应用程序与互联网之间构建一道安全屏障,通过拦截和检测恶意流量,防止攻击者对您的Web应用程序进行攻击。它不仅覆盖了常见的网络攻击类型,还针对新兴的攻击手段进行了防护设计,确保您的Web应用程序在面对各种威胁时都能得到全方位的保护。