1、ECShop存在一个盲注漏洞,问题存在于/api/client/api.php文件中,提交特制的恶意POST请求可进行SQL注入攻击,可获得敏感信息或操作数据库。
路径:/api/client/includes/lib_api.php
参照以下修改:
推荐(免费):
function API_UserLogin($post) { /* SQL注入过滤 */ if (get_magic_quotes_gpc()) { $post['UserId'] = $post['UserId']; } else { $post['UserId'] = addslashes($post['UserId']); } /* end */ $post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';登录后复制
2、ecshop的后台编辑文件/admin/shopinfo.php中,对输入参数id未进行正确类型转义,导致整型注入的发生。
路径: /admin/shopinfo.php
参照以下修改(53-71-105-123行):
源代码: admin_priv('shopinfo_manage'); 改为: admin_priv('shopinfo_manage'); $_REQUEST['id'] = intval($_REQUEST['id']);登录后复制
3、文件/admin/affiliate_ck.php中,对输入参数auid未进行正确类型转义,导致整型注入的发生。
参照以下修改(31行和51行):
源代码: $logdb = get_affiliate_ck(); 改成: $_GET['auid'] = intval($_GET['auid']); $logdb = get_affiliate_ck();登录后复制
注:好像按上面改了阿里云还是会提示这个漏洞,然后我在文件顶部处添加以下代码就可以了:
$_GET['auid'] = intval($_GET['auid']);登录后复制
4、ecshop的/admin/comment_manage.php中,对输入参数sort_by、sort_order未进行严格过滤,导致SQL注入。
参照以下修改:
$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'add_time' : trim(htmlspecialchars($_REQUEST['sort_by'])); $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim(htmlspecialchars($_REQUEST['sort_order']));登录后复制
5、ecshop没有对会员注册处的username过滤,保存重的用户信息时,可以直接写入shell。
路径:/admin/integrate.php
大概109行,参照以下修改:
$code = empty($_GET['code']) ? '' : trim(addslashes($_GET['code']));登录后复制
大概601行,参照以下修改:
源代码: @file_put_contents(ROOT_PATH . 'data/repeat_user.php', $json->encode($repeat_user)); 修改成: @file_put_contents(ROOT_PATH.'data/repeat_user.php','<?php die();?>'.$json->encode($repeat_user));登录后复制
注:好像按上面改了阿里云还是会提示这个漏洞,然后我在文件顶部处添加以下代码就可以了:
$_GET['code'] = empty($_GET['code']) ? '' : trim(addslashes($_GET['code']));登录后复制
6、ecshop后台模版编译导致黑客可插入任意恶意代码。
路径:/admin/edit_languages.php
大概在第120行
$dst_items[$i] = $_POST['item_id'][$i] .' = '. '"' .$_POST['item_content'][$i]. '";';登录后复制
修改为
$dst_items[$i] = $_POST['item_id'][$i] .' = '. ''' .$_POST['item_content'][$i]. '';';登录后复制
7、ecshop过滤不严导致SQL注入漏洞。
路径:/category.php 、 /ecsapi/category.php
修改方法:https://www.cnblogs.com/LittleHann/p/4524161.html
8、ecshop的/includes/lib_insert.php文件中,对输入参数未进行正确类型转义,导致整型注入的发生。
有$arr['num'] 、$arr['id']、$arr['type']这些参数的,在函数开头加上:
大概289行加上: $arr['num'] = intval($arr['num']); $arr['id'] = intval($arr['id']); 大概454行加上: $arr['id'] = intval($arr['id']); $arr['type'] = addslashes($arr['type']); 大概495行加上: $arr['id'] = intval($arr['id']);登录后复制
9、ECSHOP支付插件存在SQL注入漏洞,此漏洞存在于/includes/modules/payment/alipay.php文件中,该文件是ECshop的支付宝插件。由于ECShop使用了str_replace函数做字符串替换,黑客可绕过单引号限制构造SQL注入语句。只要开启支付宝支付插件就能利用该漏洞获取网站数据,且不需要注册登入。
搜索代码: $order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']); 将下面一句改为: $order_sn = trim(addslashes($order_sn));登录后复制
Ecshop后台模版编辑漏洞
详情描述参考:https://www.cnblogs.com/LittleHann/p/4272255.html
漏洞文件:/admin/mail_template.php 和 /includes/cls_template.php
/admin/mail_template.php文件添加以下代码(过滤了部分php关键词)
/*------------------------------------------------------ */ //-- 保存模板内容 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'save_template') { if (empty($_POST['subject'])) { sys_msg($_LANG['subject_empty'], 1, array(), false); } else { $subject = trim($_POST['subject']); } if (empty($_POST['content'])) { sys_msg($_LANG['content_empty'], 1, array(), false); } else { $content = trim($_POST['content']); } $type = intval($_POST['is_html']); $tpl_id = intval($_POST['tpl']); /*过滤了部分php关键词*/ $temp_check = preg_replace("/([^a-zA-Z0-9_]{1,1})+(extract|parse_str|str_replace|unserialize|ob_start|require|include|array_map|preg_replace|copy|fputs|fopen|file_put_contents|file_get_contents|fwrite|eval|phpinfo|assert|base64_decode|create_function|call_user_func)+( |()/is", "", $content); $temp_check = preg_replace("/<?[^><]+(?>){0,1}|<%[^><]+(%>){0,1}|<%=[^><]+(%>){0,1}|[removed]]+language[^>]*=[^>]*php[^>]*>[^><]*([removed]){0,1}/iU", "", $temp_check); $content = $temp_check; /*过滤了部分php关键词*/ $sql = "UPDATE " .$ecs->table('mail_templates'). " SET ". "template_subject = '" .str_replace('\'\'', '\'', $subject). "', ". "template_content = '" .str_replace('\'\'', '\'', $content). "', ". "is_html = '$type', ". "last_modify = '" .gmtime(). "' ". "WHERE template_id='$tpl_id'"; if ($db->query($sql, "SILENT")) { $link[0]=array('href' => 'mail_template.php?act=list', 'text' => $_LANG['update_success']); sys_msg($_LANG['update_success'], 0, $link); } else { sys_msg($_LANG['update_failed'], 1, array(), false); } }登录后复制
/includes/cls_template.php文件替换函数(fetch_str()):
function fetch_str($source) { if (!defined('ECS_ADMIN')) { $source = $this->smarty_prefilter_preCompile($source); } $source=preg_replace("/([^a-zA-Z0-9_]{1,1})+(copy|fputs|fopen|file_put_contents|fwrite|eval|phpinfo)+( |()/is", "", $source); $source=preg_replace("/<?[^><]+?>|<%[^><]+%>|[removed]]+language[^>]*=[^>]*php[^>]*>[^><]*[removed]/iU", "", $source); return preg_replace("/{([^}{ ]*)}/e", "$this->select('\1');", $source); //return preg_replace_callback("/{([^}{ ]*)}/", function($r) { return $this->select($r[1]); }, $source);//修饰符 /e 在 PHP5.5.x 中已经被弃用了 }登录后复制
以上就是修复整理ecshop漏洞的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 修复整理ecshop漏洞
发表评论 取消回复