zoukankan      html  css  js  c++  java
  • 关于ECSHOP中sql注入漏洞修复

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

    技术分享

    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‘]);  


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

    本文出自 “云之上” 博客,请务必保留此出处http://weimouren.blog.51cto.com/7299347/1908368

    关于ECSHOP中sql注入漏洞修复

    标签:ecshop sql注入漏洞修复

  • 相关阅读:
    git
    Java命令行参数解析
    Java调用本地命令
    理解JavaScript继承
    python selenium自动化(三)Chrome Webdriver的兼容
    python selenium自动化(二)自动化注册流程
    python selenium自动化(一)点击页面链接测试
    使用python selenium进行自动化functional test
    JUnit中测试异常抛出的方法
    爬坑 http协议的options请求
  • 原文地址:https://www.cnblogs.com/qiao20/p/7154999.html
Copyright © 2011-2022 走看看