關於ECSHOP中sql注入漏洞修復

2021-09-20 17:06:17 字數 3300 閱讀 4179

公司部署了乙個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)

else

/* */

$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']))

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()

}$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']);  

修改後更新阿里雲控制台,提示已經修復,大功告成

關於SQL注入

sql 注入的定義是sql是運算元據庫資料的結構化查詢語言,網頁的應用資料和後台資料庫中的資料進行互動時會採用sql。而sql注入是將web頁面的原url 表單域或資料報輸入的引數,修改拼接成sql語句,傳遞給web伺服器,進而傳給資料庫伺服器以執行資料庫命令。如web應用程式的開發人員對使用者所輸...

關於sql注入問題

sql 注入 1 sql 注入是一種攻擊方式,在這種攻擊方式中,惡意 被插入到字串中,然後將該字串傳遞到 sql server 的例項以進行分析和執行。任何構成 sql 語句的過程都應進行注入漏洞檢查,因為 sql server 將執行其接收到的所有語法有效的查詢。乙個有經驗的 堅定的攻擊者甚至可以...

作業(關於sql注入)

1 sql的注入原理 使用者輸入的東西,可以是數字,字元,或者其他的什麼語言會被整合到後台的伺服器上進行執行,而sql注入就是通過構造合法的語句,讓這語句整合到後台伺服器上執行一些違法的操作。2.sql注入具體的案例 數字型注入 post id post id query select userna...