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

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

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

时间: 2024-10-22 03:38:31

关于ECSHOP中sql注入漏洞修复的相关文章

ecshop SQL注入漏洞修复 支付漏洞修复

ecshop最新SQL注入漏洞,出现在后台管理,涉及到的文件有 includes/modules/payment/alipay.php,api/client/includes/lib_api.php,admin/edit_languages.php 注入漏洞 影响到所有包括ecshop,大小京东,大小商创程序以ecshop为内核的程序 到目前为止,ecshop官网还未做修复. 1.alipay.php 修复方法(约180行) 查找 1 $order_sn = trim($order_sn); 修

网站漏洞修复方案防止SQL注入×××漏洞

SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注入漏洞测试方法 在程序代码里不管是get提交,post提交,cookies的方式,都可以有随意控制参数的一个参数值,通过使用sql注入工具,经典的sqlmap进行检测与漏洞利用,也可以使用一些国内的SQL代码注入工具,最简单的安全测试方法就是利用数据库的单引号, AND 1=1 AND 1=2等等的

阿里云提示ecshop Discuz uc.key泄露导致代码注入漏洞修复

ecshop最新uc.php sql注入漏洞,出现在后台管理,api/uc.php 程序. 影响到所有包括ecshop,大小京东,大小商创程序以ecshop为内核的程序. 到发文为止,ecshop官网还未做修复. 打开/api/uc.php修复方法(约在269行) 1 function updateapps($get, $post) { 修改为 1 function updateapps($get, $post) { if($post['UC_API']) { $post['UC_API'] =

知名CMS软件Joomla 存SQL注入漏洞

  近日,Trustwave SpiderLabs 研究员Asaf Orpani 发现知名CMS Joomla 3.2-3.4.4版本中存在SQL注入漏洞,经安全狗实验室检测该漏洞危害巨大,影响范围广,利用难度低.目前官方已在3.4.5版本中修复该漏洞,请相关网站及时更新.另外,经测试安全狗可防御该漏洞. 漏洞详细说明与利用方法 据 Asaf Orpani 分析得出,该SQL注入漏洞存在于 /administrator /components /com_contenthistory/ model

dedecms SESSION变量覆盖导致SQL注入漏洞修补方案

dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话. 危害: 1.黑客可以通过此漏洞来重定义数据库连接. 2.通过此漏洞进行各种越权操作构造漏洞直接写入webshell后门. 云盾团队在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入,修复方法如下: 用文本编辑器打开/mnt/

Discuz 7.2 /faq.php SQL注入漏洞

测试方法: 提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! http://www.xxx.com/faq.php?action=grouppermission&gids[99]='&gids[100][0]=) and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)%23 修复方法: 修复文件:

Drupal 7.31版本爆严重SQL注入漏洞

今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并在数据库中增加一个攻击者自定义的用户. 测试代码:(请勿用于非法用途) POST /drupal-7.31/?q=node&destination=node HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x8

Discuz!7.2 faq.php文件SQL注入漏洞分析及利用实战

[antian365.com] simeon 最近网上公开了Discuz!7.2版本faq.php文件SQL注入0day,通过对文件漏洞分析以及实战测试,效果不错,公开利用exp的利用需要对SQL语句以及数据库等相当了解,在某些情况下需要多种技术配合才能最终攻克目标,下面就漏洞代码以及实战利用等进行探讨,对获取管理员密码的利用,uc_key获取webshell,插件导入获取Webshell等进行探讨. 1. faq.php文件SQL注入漏洞代码分析 本次存在漏洞的文件为faq.php,打开该文件

SQL注入漏洞总结

目录: 一.SQL注入漏洞介绍 二.修复建议 三.通用姿势 四.具体实例 五.各种绕过 一.SQL注入漏洞介绍: SQL注入攻击包括通过输入数据从客户端插入或"注入"SQL查询到应用程序.一个成功的SQL注入攻击可以从数据库中获取敏感数据.修改数据库数据(插入/更新/删除).执行数据库管理操作(如关闭数据库管理系统).恢复存在于数据库文件系统中的指定文件内容,在某些情况下能对操作系统发布命令.SQL注入攻击是一种注入攻击.它将SQL命令注入到数据层输入,从而影响执行预定义的SQL命令.