ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,
ecshop2.73版本以及目前最新的3.0、3.6、4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用
远程代码执行sql注入语句漏洞,导致可以插入sql查询代码以及写入代码到网站服务器里,严重的
可以直接获取服务器的管理员权限,甚至有些网站使用的是虚拟主机,可以直接获取网站ftp的权
限,该漏洞POC已公开,使用简单,目前很多商城网站都被攻击,危害较大,针对于此我们SINE
安全对该ECSHOP漏洞的详情以及如何修复网站的漏洞,及如何部署网站安全等方面进行详细的解
读。
ecshop漏洞产生原因
全系列版本的ecshop网站漏洞,漏洞的根源是在网站根目录下的user.php代码,在调用远程函数
的同时display赋值的地方可以直接插入恶意的sql注入语句,导致可以查询mysql数据库里的内容
并写入数据到网站配置文件当中,或者可以让数据库远程下载文件到网站目录当中去。
的同时display赋值的地方可以直接插入恶意的sql注入语句,导致可以查询mysql数据库里的内容
并写入数据到网站配置文件当中,或者可以让数据库远程下载文件到网站目录当中去。
我们随便下载一份ecshop的版本源码,可以看到user.php这个代码里的http_referer远程读取浏
览器来路信息的时候,传递回来的值会直接变量到black_act里,并直接调用assign的方式去传
入到数据库,我们来看下代码:
从代码里可以看出assign的函数调用的使用时要把传入进来的参数变量递给模板,然后再通过远程
代码将内容显示到网站前端中去。在这个过程当中我们就可以插入一些恶意的sql注入语句直接执
行查询数据库命令操作。如下图:
览器来路信息的时候,传递回来的值会直接变量到black_act里,并直接调用assign的方式去传
入到数据库,我们来看下代码:
从代码里可以看出assign的函数调用的使用时要把传入进来的参数变量递给模板,然后再通过远程
代码将内容显示到网站前端中去。在这个过程当中我们就可以插入一些恶意的sql注入语句直接执
行查询数据库命令操作。如下图:
可以看到上面我们直接执行的sql语句,查询打印了数据库里的信息,其实ecshop主要的漏洞根源
在于fetch函数的使用,这个函数可以通过_str、select等方式直接插入并执行远程代码。通过伪造
HTTP头,把恶意的代码插入到http头里去,通过GET、POST、cookies的提交方式直接写入恶意
代码到服务器里并执行,我们POC看下:
在于fetch函数的使用,这个函数可以通过_str、select等方式直接插入并执行远程代码。通过伪造
HTTP头,把恶意的代码插入到http头里去,通过GET、POST、cookies的提交方式直接写入恶意
代码到服务器里并执行,我们POC看下:
此referer里的内容就是要网站远程下载一个脚本大马,下载成功后会直接命名为SINE.php,攻击者
打开该文件就可以执行对网站的读写上传下载等操作,甚至会直接入侵服务器,拿到服务器的管
理员权限。
打开该文件就可以执行对网站的读写上传下载等操作,甚至会直接入侵服务器,拿到服务器的管
理员权限。
ecshop漏洞修复
目前ecshop官方并没有升级任何版本,也没有告知漏洞补丁,我们SINE安全公司建议各位网站的
运营者对网站配置目录下的lib_insert.php里的id以及num的数据转换成整数型,或者是将网站的
user.php改名,停止用户管理中心的登录,或者找专业的网站安全公司去修复漏洞补丁,做好网站
安全检测与部署。对网站的images目录写入进行关闭,取消images的php脚步执行权限。
运营者对网站配置目录下的lib_insert.php里的id以及num的数据转换成整数型,或者是将网站的
user.php改名,停止用户管理中心的登录,或者找专业的网站安全公司去修复漏洞补丁,做好网站
安全检测与部署。对网站的images目录写入进行关闭,取消images的php脚步执行权限。