关于ECSHOP中sql注入漏洞修复
admin
2023-05-26 22:21:21
0次

公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞

如下图:

关于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文件中,对输入参数未进行正确类型转义,导致整型注入的发生。

关于ECSHOP中sql注入漏洞修复

  1. 139c139,140  

  2. +       $arr['num'] = intval($arr['num']);  

  3. +                       $arr['id'] = intval($arr['id']);  

  4. 267c268  

  5. ---  

  6. 270c271,272  

  7. +       $arr['id'] = intval($arr['id']);  

  8. +                       $arr['type'] = addslashes($arr['type']);  

  9. 308c310  

  10. ---  

  11. +       $arr['id'] = intval($arr['id']);  


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


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...