關於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']));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM