ecshop目前最新版本为4.0,是国内开源的一套商城系统,很多外贸公司,以及电商平台都在使用,正因为使用的人数较多,很多攻击者都在挖掘该网站的漏洞,就在最近ecshop被爆出高危漏洞,该漏洞利用跨站伪造函数,来对网站数据库进行攻击。

ecshop 漏洞详情

该网站漏洞发生的根本原因是根目录下的user.php文件,在第315-365行里的代码里,该代码主要是处理用户注册,用户登录的一些功能请求处理,与数据库进行通信查询用户的账号密码是否正确,以及写入数据库中用户的注册资料等信息。我们使用一台windows2008服务器来搭建下ecshop系统的环境,我们使用IIS7.5+mysql数据库,php的版本为5.3,在官方下载最新版。

我们来看下发生问题的user.php代码,如下图:

从上面的代码可以看出,用户在登录的时候会先将变量值action传入到login进行赋值变成登录的主要代码,当登录请求的时候,系统会将referer里的值传递给back_act这个参数里,导致网站漏洞发生,由于传入的参数可以传递给assign的函数中去,导致模板注册给改变了变量,可以插入跨站脚本攻击代码进去,直接插入到html文件里。

本身ecshop网站,当初设计的时候就有安全拦截系统,对一些非法的参数,攻击代码进行了强制的转换与拦截,有一些安全的拦截规则,我们可以从includes目录下的safety.php文件可以看出来,如下图:

网站系统的拦截规则写的非常简单,只是过滤了常用的html标签以及eval一句话代码的特征,一些敏感的特殊字符,像《》*%#都拦截掉了。但是ecshop官方疏忽了JS跨站弹窗的一个函数,confirm可以直接插入代码进行使用,漏洞的使用就是绕过ecshop安全拦截规则,把攻击代码直接写入到html里。我们可以使用html的编码方式进行绕过,构造如下的代码:

GET /ECShop4.0/user.php

HTTP/1.1

Referer:" /><a href=j&#97v&#97:&#97lert

('Cyc1e_test')><imgsrc="xxxxx

User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21

(KHTML, like Gecko)Chrome/41.0.2228.0

Safari/537.21Cookie:ECS_ID=17b608d2a679cf2c7e8611581478e6929dbfb34b;ECS

[visit_times]=2Connection:keep-aliveAccept: */*Accept-

Encoding:gzip,deflateHost:

利用get的提交方式将我们构造的恶意代码写入到数据包中,提交到网站里。这样直接绕过了ecshop的安全检测,该漏洞的使用需要用户点击图片才可以使漏洞正常使用。

关于ecshop网站漏洞的修复建议:

对ecshop safety.php文件进行安全过滤,对#97以及href,,进行强制的拦截,html实体编码也进行拦截,如果对代码不是太懂的话,也可以对模板文件进行安全权限限制,ecshop官方目前没有对此跨站漏洞进行漏洞修复与升级补丁,建议使用4.0版本的网站,删除user.php注册功能,如果自己懂程序,那就可以自己针对代码的漏洞进行ecshop漏洞修复,不懂的话,可以找专业的网站安全公司来修复ecshop漏洞,国内像SINE安全、绿盟安全、启明星辰都是比较专业的安全公司,很多攻击者之所以能植入木马病毒,就是抓住了ecshop网站代码上的漏洞。

ecshop跨站漏洞详情及修补网站漏洞的更多相关文章

  1. CSRF(跨站请求伪造攻击)漏洞详解

    Cross-Site Request Forgery(CSRF),中文一般译作跨站点 请求伪造.经常入选owasp漏洞列表Top10,在当前web漏洞排行中,与XSS和SQL注入并列前三.与前两者相比 ...

  2. MetInfo最新网站漏洞如何修复以及网站安全防护

    metinfo漏洞于2018年10月20号被爆出存在sql注入漏洞,可以直接拿到网站管理员的权限,网站漏洞影响范围较广,包括目前最新的metinfo版本都会受到该漏洞的攻击,该metinfo漏洞产生的 ...

  3. 怎么修复网站漏洞 骑士cms的漏洞修复方案

    骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危网站漏洞,通杀SQL注入漏洞,利用该网站 ...

  4. 齐博cms最新SQL注入网站漏洞 可远程执行代码提权

    齐博cms整站系统,是目前建站系统用的较多的一款CMS系统,开源,免费,第三方扩展化,界面可视化的操作,使用简单,便于新手使用和第二次开发,受到许多站长们的喜欢.开发架构使用的是php语言以及mysq ...

  5. 苹果cms网站漏洞修复解决办法

    苹果cms系统,是目前很多电影网站都在使用的一套网站系统,开源,免费,扩展性较好,支持一键采集,伪静态化,高并发的同时承载,获得的很多站长的喜欢,于近日被网站安全检测发现,maccms存在网站漏洞,s ...

  6. [oldboy-django][4python面试]有关csrf跨站伪造请求攻击

    1 csrf定义 - csrf定义:Cross Site Request Forgery,跨站请求伪造 举例来说: 网站A伪造了一个图片链接: <a href="http://www. ...

  7. django----csrf跨站请求伪造 auth组件 settings源码 importlib模块

    目录 importlib模块 csrf跨站请求伪造 form表单发送 ajax发送 csrf装饰器 auth模块 如何创建超级用户(root) 创建用户 校验用户名和密码是否正确 保存用户登录状态 判 ...

  8. django之跨站请求伪造csrf

    目录 跨站请求伪造 csrf 钓鱼网站 模拟实现 针对form表单 ajax请求 csrf相关的两个装饰器 跨站请求伪造 csrf 钓鱼网站 就类似于你搭建了一个跟银行一模一样的web页面 , 用户在 ...

  9. CSRF 跨站

    目录 CSRF 跨站请求伪造 解决跨站伪造问题: csrf 相关的装饰器: csrf.js文件: CSRF 跨站请求伪造 CSRF全称为Cross-site request forgery,也被称为: ...

随机推荐

  1. .NET预处理器指令

    .NET预处理器指令 做开发以来很少接触到这部分内容,基本上没有用到,偶尔在一些框架中和一些开源项目中会见到,常常因为只关心实现逻辑忽略了这部分的功能.现在自己有点时间了,还是希望能够完整的对这部分做 ...

  2. Struts2学习-struts+spring

    学习帮助网址:http://www.cnblogs.com/S-E-P/archive/2012/01/18/2325253.html http://blog.csdn.net/ad921012/ar ...

  3. VB.NET & DataGridView与数据库的连接

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/huo065000/article/details/37378313      加入删除用户,这就又要 ...

  4. SDOI2018R1划水记

    SDOI2018 bless all Day -1 一天无所事事……板子也不想打了 旁边的蚝爷还在不停的AC……果然自动AC机不是白叫的 "8848钛金老蚝,一上课就A题,一下课就学习,每2 ...

  5. Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接

    一 set_uid 之前我们修改普通用户的登陆密码,都是以管理员身份在操作,比如我们在lv账户下,我们使用sudo passwd lv 重置lv账户密码,此时我们直接拿到root权限忽略掉了文件权限的 ...

  6. Hive之数据类型

    Hive之数据类型   (本文是基于多篇文章根据个人理解进行的整合,参考的文章见末尾的整理) 数据类型 Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型.原子数据类型包括数值型.布尔型 ...

  7. IP黑白名单

    防攻击可以增加IP白名单/etc/hosts.allow和黑名单/etc/hosts.deny /etc/hosts.allow  IP白名单 /etc/hosts.deny   IP黑名单 /etc ...

  8. python-递归的实现

    一.概念 递归算法是一种直接或者间接地调用自身算法的过程,在计算机编写程序中,递归算法对解决一大类问题是十分有效的. 特点: ①递归就是在过程或者函数里调用自身. ②在使用递归策略时,必须有一个明确的 ...

  9. springboot项目pom添加依赖

    在dependency 后面  ALt+/  可以打开编辑窗口.

  10. MVC学习十四:MVC 路由 Route

    一.MVC路由(Route)是什么? MVC路由(Route)可以理解规定用户访问网站方式的配置文件,就例如:我们在访问普通页面时http://xxxx/web/xx.aspx,但在MVC中我们的访问 ...