设为首页 收藏本站
查看: 799|回复: 0

[经验分享] 关于ECSHOP中sql注入漏洞修复

[复制链接]

尚未签到

发表于 2018-10-20 12:13:00 | 显示全部楼层 |阅读模式
  公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞
  如下图:
DSC0000.png

  
  与技术沟通未果的情况下,网上查了点资料,对其文件进行修复,如下修改:
  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文件中,对输入参数未进行正确类型转义,导致整型注入的发生。


  •   139c139,140
  •   +       $arr['num'] = intval($arr['num']);
  •   +                       $arr['id'] = intval($arr['id']);
  •   267c268
  •   ---
  •   270c271,272
  •   +       $arr['id'] = intval($arr['id']);
  •   +                       $arr['type'] = addslashes($arr['type']);
  •   308c310
  •   ---
  •   +       $arr['id'] = intval($arr['id']);
  修改后更新阿里云控制台,提示已经修复,大功告成


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624052-1-1.html 上篇帖子: server-world install gluster-fei 下篇帖子: 数据库技能实战进阶之常用结构化sql语句(中)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表