博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ecshop 漏洞如何修复 补丁升级与安全修复详情
阅读量:6678 次
发布时间:2019-06-25

本文共 1591 字,大约阅读时间需要 5 分钟。

目前ecshop漏洞大面积爆发,包括最新版的ecshop 3.0,ecshop 4.0,ecshop2.7.3全系列版本都存在着高危网站漏洞,导致网站被黑,被篡改,被挂马,许多商城系统深受其漏洞的攻击,给商城的运营者以及网站运营者带来很大的经济损失,甚至有些ecshop还被跳转到了一些恶意网站上去。那么ecshop漏洞如何修复呢?

首先我们要先了解下ecshop漏洞的发生根源,我们SINE安全工程师对其所有版本的代码进行了全面的人工安全检测,以及网站漏洞检测,发现ecshop根目录下的user.php文件存在远程代码执行sql注入漏洞,我们对ecshop的user.php进行查看,在302行里我们发现了安全问题:

back_act这个变量的值来自于前端post提交方式的数据中,包含的http_referer这个函数里,这个函数可以插入恶意的sql注入代码,为什么可以插入呢?原理很简单,ecshop商城使用的模板引擎是采用smarty引擎,这个引擎在国内是比较有名的,大多数都会调用到一些常用的参数,比如assign,display这两个常用的引擎函数,由于assign的函数是需要模板执行的时候才能赋值,所以首先运行的就是smarty模板引擎,前端会读取模板文件然后将值给赋值到函数当中去,那么传递过来的值就可以插入恶意的远程执行代码,并传入到服务器端进行执行。

我们来看下模板引擎文件,如下图所示:

c20f5e1653474bf1aba4bf00b621b5a0.png

从上图中的函数echash,首先会调用一个user password的一个模板文件,在这个模板文件中来变量赋值,进行模板引擎的解析操作,也就是说会把引擎里的assign函数注册到变量里去,并进行模板解析,返回到insert_mod函数进行网站交互处理。

ecshop漏洞利用 使用exp代码,在post数据包中我们抓取一下,然后伪造referer:插入:

Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:

{s:3:”num”;s:72:”0,1 procedure analyse(extractvalue(rand(),concat

(0x7e,version())),1)– -“;s:2:”id”;i:1;}

这个是查询数据库版本的一个sql注入语句,执行后会返回数据到前端,如下图:

10aac6dab8a44a3da2c6caf8eb7bb7e5.png

fc0569f1191b43b7b0d88be08454fb61.png

上图已经返回了数据库的版本信息,那么攻击者就可以构造远程代码执行数据库操作,上传木马后门到网站里去,并进行篡改网站即可。

ecshop 3.0版本的漏洞,是因为漏洞产生的原因在于includes目录下safety.php 文件,这个代码文件主要是限制一些恶意参数的写入,会自动匹配一些数据库查询语句,不管是加密还是都会拦截这些恶意的参数,包括数据库的执行语句,但是在整个代码的安全检测中我们发现这个ecshop3.0竟然可以执行命令,利用playload进行编码绕过,就可以执行远程命令,包括可以使用union联合查询。

ecshop 漏洞修复

关于ecshop4.0 漏洞修复我们可以对根目录下的includes文件夹下的lib_insert.php这个文件进行编写,将asrr [num]跟ID这两个值,进行强制的转换成整数型,这样导致SQL语句无法执行了,就可以修复ecshop4.0版的漏洞,那么ecshop2.7.3以及.ecshop3.0版本的网站,目前官方并没有漏洞修复补丁,建议网站运营者先将user.php改名,或者删除,并对网站进行防篡改部署,限制修改,只允许读取操作,对网站进行sql防注入部署,对http_referer里的值进行非法参数拦截,并做拦截日志记录,如果对安全不是太懂的话建议找专业的网站安全公司来修复漏洞,做好网站安全部署,国内SINE安全公司,绿盟,启明星辰,都是比较不错的安全公司。

转载地址:http://aqfao.baihongyu.com/

你可能感兴趣的文章
Hibernate核心配置文件
查看>>
SpringBoot学习之一 Unable to find a single main class from the following candidates
查看>>
SpringCloud学习成长 四 断路器(Hystrix)
查看>>
UIAlertView
查看>>
xfs 文件系统损坏修复 fscheck
查看>>
Hibernate之一级缓存
查看>>
Python基础之定义有默认参数的函数
查看>>
443. String Compression - Easy
查看>>
Unity中那些事半功倍的好插件
查看>>
最全的Markdown语法
查看>>
npm i 的几种方式区别
查看>>
Eclipse界面简介
查看>>
iOS5中的UUID
查看>>
(转载)XML Tutorial for iOS: How To Read and Write XML Documents with GDataXML
查看>>
指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请断开所有现有的连接到网络共享的映射...
查看>>
poj 3259 Wormholes
查看>>
Apache CXFjar包目录(转)
查看>>
NewCoder_13_E 通知小弟[缩点]
查看>>
Elasticsearch 空值过滤
查看>>
spring、springboot、springcloud的区别
查看>>