WF曲速未来警惕:ECSHOP多个版本远程代码执行漏洞

曲速未来安全区
企业专栏
热度: 16543

8月31日,流行的购物系统——ECSHOP被曝出远程代码执行漏洞。攻击者可利用代码执行漏洞远程在服务器上执行命令,从而控制服务器,获取敏感数据,甚至导致内网沦陷。

漏洞

8月31日,流行的购物系统——ECSHOP被曝出远程代码执行漏洞。攻击者可利用代码执行漏洞远程在服务器上执行命令,从而控制服务器,获取敏感数据,甚至导致内网沦陷。该漏洞在2017就已经存在,最近才被公布,相关用户最好进行安全检查,及时确认是否被入侵并修复漏洞并去掉后门。ECShop是国内最流行的购物系统之一。是上海商派网络科技有限公司(ShopEx)旗下的B2C独立网店系统,基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。建议使用该系统的用户及时检查是否存在该漏洞,避免造成损失。

分布概况

目前根据FOFA统计,全球共计有21450个ECSHOP的用户;

下面是全球分布情况(非漏洞影响情况),其中中国最多,大概有18400个,美国1735个,其他国家用户数量不多于300:

漏洞

下面是全球分布情况(非漏洞影响情况),其中浙江10563,北京2227,广东738,河南655:

漏洞

漏洞分析

远程代码执行漏洞

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

首先从user.php文件入手,代码中可以看到,系统读取HTTP_REFERER传递过来的内容赋值给$back_act变量。接着以$back_act的值为参数,调用assign方法。

漏洞

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

漏洞

接下来,跟进dispaly方法,再display中又调用了insert_mod方法

漏洞

insert_mod方法返回了一个动态函数调用,该函数名和参数均可控,根据攻击者的利用方法,我们可以得知调用的函数名为insert_ads,接下来跟进这一方法。


漏洞

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

漏洞

调用了fetch方法,参数由$row['position_style']变量赋值,这一变量同样可控。

漏洞

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

漏洞

经过fetch_str、select、get_val,make_var方法,最终执行代码。这里说一下,如果存在代码执行,则肯定存在SQL注入,但对于利用的便捷性,还是代码执行用起来比较方便。

最终payload,会生成666.php,密码1233

漏洞

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

修复建议:

1 在官网上下载ECSHOP最新版。

2 在文件中140,271,370行加上如下两行代码把可控变量进行强制类型转换即可。

漏洞

区块链安全实验室WF曲速未来提醒:该漏洞利用难度低,影响面广,并已经发现有批量入侵迹象,存在相关业务的用户及时关注并进行修补。


文章声明:本文为MarsBit专栏作者作品,版权归作者所有,不代表MarsBit观点。

声明:本文为入驻“火星财经 专栏”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
本内容旨在传递行业动态,不构成投资建议或承诺。