关于ecshop中sql注入漏洞修复

Posted Life Love Tech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ecshop中sql注入漏洞修复相关的知识,希望对你有一定的参考价值。

ecshop系统部署在阿里云服务器上,阿里云提示Web-CMS漏洞:

修复方法如下:

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

大概在第246行,API_UserLogin()函数中

/* SQL注入过滤 */
if (get_magic_quotes_gpc()) {     
    $post[\'UserId\']=$post[\'UserId\']     
} else {     
    $post[\'UserId\']=addslashes($post[\'UserId\']);     
}
$post[\'username\'] = isset($post[\'UserId\']) ? trim($post[\'UserId\']) : \'\';
$post[\'password\'] = isset($post[\'Password\']) ? strtolower(trim($post[\'Password\'])) : \'\';

4. /admin/edit_languages.php

 大概在第120行

$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

 大概在第291行,get_affiliate_ck()函数中

$sqladd = \' AND a.user_id=\' . $_GET[\'auid\'];

修改为

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

6. /admin/comment_manage.php

 大概在第336行,get_comment_list()函数中

$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.php 和 /app/includes/modules/payment/alipay.php

 大概在第183行,respond()函数中

$order_sn = trim($order_sn);

修改为

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

8. /includes/lib_insert.php

对以下变量进行过滤

$arr[\'id\'] = intval($arr[\'id\']);
$arr[\'num\'] = intval($arr[\'num\']);
$arr[\'type\'] = addslashes($arr[\'type\']);

9. /admin/integrate.php

大概在第109行

$code = empty($_GET[\'code\']) ? \'\' : trim($_GET[\'code\']);

修改为

$code = empty($_GET[\'code\']) ? \'\' : trim(addslashes($_GET[\'code\']));

 

以上是关于关于ecshop中sql注入漏洞修复的主要内容,如果未能解决你的问题,请参考以下文章

关于ecshop中sql注入漏洞修复

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

ECShop 2.x/3.x SQL注入/任意代码执行漏洞

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

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

Ecshop 2.x/3.x SQL注入/任意代码执行漏洞