2019最新ECSHOP漏洞修复全集【ecshop所有版本最新漏洞修复】

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']);
        }
        /* 检查密码是否正确 */
        $sql = "SELECT user_id, user_name, password, action_list, last_login".
        " FROM " . $GLOBALS['ecs']->table('admin_user') .
        " WHERE user_name = '" . htmlspecialchars($post['username']). "'";
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));
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
大概53行,参照以下修改:
源代码:
$filter_attr_str = isset($_REQUEST['filter_attr']) ? trim($_REQUEST['filter_attr']) : '0';
$filter_attr_str = urldecode($filter_attr_str);
$filter_attr = empty($filter_attr_str) ? '' : explode('.', trim($filter_attr_str));
修改成:
$filter_attr_str = isset($_REQUEST['filter_attr']) ? htmlspecialchars(trim($_REQUEST['filter_attr'])) : '0';
$filter_attr_str = trim(urldecode($filter_attr_str));
$filter_attr_str = preg_match('/^[\d\.]+$/', $filter_attr_str) ? $filter_attr_str : '';
$filter_attr = empty($filter_attr_str) ? '' : explode('.', $filter_attr_str);
大概319行,参照以下修改:
源代码:
if (is_numeric($v) && $v !=0 )
修改成:
if (is_numeric($v) && $v !=0 && isset($cat_filter_attr[$k]))
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));

本文原创地址:https://www.ecshop.cx/article-571.html
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

实时购买动态 ×

匿名网友 在 2019-10-28 购买了 给ECSHOP加上自动生成sitemap.html的网站地图插件利于提升百度SEO收录