广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > 关于阿里云服务器安装ECSHOP系统中报sql注入漏洞修复

二次开发Ecshop二次开发

二次开发Ecshop二次开发

关于阿里云服务器安装ECSHOP系统中报sql注入漏洞修复

 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞,特地针对阿里云服务器的情况下,对其文件进行修复,如下修改:

 

 

1,/admin/shopinfo.php修复方法

 

(大概在第53、71、105、123行,4个地方修复方式都一样)     admin_priv(‘shopinfo_manage‘);      修改为     admin_priv(‘shopinfo_manage‘); $_REQUEST[‘id‘] =intval($_REQUEST[‘id‘]); 

 

2,/admin/shophelp.php修复方法

 

(大概在第81、105、133、155行,4个地方修复方式都一样)     admin_priv(‘shophelp_manage‘);      修改为     admin_priv(‘shophelp_manage‘); $_POST[‘id‘] =intval($_POST[‘id‘]);

 

3,/api/client/includes/lib_api.php漏洞修复方法

 

functionAPI_UserLogin($post)

 

{

 

    /*添加 SQL注入过滤 */

 

    if (get_magic_quotes_gpc())

 

    {    

 

        $post[‘UserId‘] = $post[‘UserId‘]    

 

    }

 

    else

 

    {    

 

        $post[‘UserId‘] =addslashes($post[‘UserId‘]);    

 

    }

 

    /* */

 

    $post[‘username‘] = isset($post[‘UserId‘])? trim($post[‘UserId‘]) : ‘‘;

 

    …….

 

4,\admin\edit_languages.php漏洞修复方法

 

// 修复前

 

$dst_items[$i]= $_POST[‘item_id‘][$i] .‘ = ‘. ‘"‘ .$_POST[‘item_content‘][$i].‘";‘; 

 

// 修复后,由于想在单引号之间出现单引号,必须使用转义。

 

$dst_items[$i]= $_POST[‘item_id‘][$i] .‘ = ‘. ‘\‘‘ .$_POST[‘item_content‘][$i]. ‘\‘;‘;

 

修复后,测试一下,是否还有漏洞。

 

5,/admin/affiliate_ck.php sql注入漏洞修复

 

get_affiliate_ck函数.

 

function get_affiliate_ck()226行

 

修复方案

 

对$_GET[‘auid’]强制转换

 

    if (isset($_GET[‘auid‘]))

 

    {

 

        $sqladd = ‘ AND a.user_id=‘ . intval($_GET[‘auid‘]);

 

    }

 

6,/admin/comment_manage.php注入漏洞修复  336行

 

文件在/admin/comment_manage.php后台sql注入漏洞。   

 

/admin/comment_manage.php修复方法(大概在第336行)     

 

$filter[‘sort_by‘]      =empty($_REQUEST[‘sort_by‘]) ? ‘add_time‘ : trim($_REQUEST[‘sort_by‘]);

 

$filter[‘sort_order‘]   = empty($_REQUEST[‘sort_order‘]) ? ‘DESC‘ :trim($_REQUEST[‘sort_order‘]);

 

修改为   

 

$sort =array(‘comment_id‘,‘comment_rank‘,‘add_time‘,‘id_value‘,‘status‘);

 

$filter[‘sort_by‘] = in_array($_REQUEST[‘sort_by‘], $sort) ?trim($_REQUEST[‘sort_by‘]) : ‘add_time‘; 

 

$filter[‘sort_order‘] = empty($_REQUEST[‘sort_order‘])? ‘DESC‘ : ‘ASC‘;

 

7,/includes/modules/payment/alipay.phpSQL注入漏洞 116行

 

防御方法

 

/includes/modules/payment/alipay.php

 

functionrespond()

 

{

 

    if (!empty($_POST))

 

    {

 

       foreach($_POST as $key => $data)

 

       {

 

       $_GET[$key] = $data;

 

       }

 

    }

 

    $payment = get_payment($_GET[‘code‘]);

 

    $seller_email =rawurldecode($_GET[‘seller_email‘]);

 

    $order_sn = str_replace($_GET[‘subject‘],‘‘, $_GET[‘out_trade_no‘]);

 

   /* 对$order_sn进行有效过滤 */

 

    $order_sn = trim(addslashes($order_sn));

 

    /* */

 

8,/includes/lib_insert.phpsql注入漏洞修复

 

ecshop的/includes/lib_insert.php文件中,对输入参数未进行正确类型转义,导致整型注入的发生。

 

 

$arr[‘num‘] = intval($arr[‘num‘]);  

 

 $arr[‘id‘] = intval($arr[‘id‘]);  

 

$arr[‘type‘] = addslashes($arr[‘type‘]);  

 

 

修改后更新阿里云控制台,提示已经修复,大功告成!