ecshop漏洞於2018年9月12日被某安全組織披露爆出,該漏洞受影響範圍較廣,
ecshop2.73版本以及目前最新的3.0、3.6、4.0版本都受此次ecshop漏洞的影響,主要漏洞是利用
遠程代碼執行sql注入語句漏洞,導致可以插入sql查詢代碼以及寫入代碼到網站主機裡,嚴重的
可以直接獲取主機的管理員權限,甚至有些網站使用的是虛擬主機,可以直接獲取網站ftp的權
限,該漏洞POC已公開,使用簡單,目前很多商城網站都被攻擊,危害較大,針對於此我們esafe
安全對該ECSHOP漏洞的詳情以及如何修復網站的漏洞,及如何部署網站安全等方面進行詳細的解
讀。
ecshop漏洞產生原因
全系列版本的ecshop網站漏洞,漏洞的根源是在網站根目錄下的user.php代碼,在調用遠程函數
的同時display賦值的地方可以直接插入惡意的sql注入語句,導致可以查詢mysql數據庫裡的內容
並寫入數據到網站配置文件當中,或者可以讓數據庫遠程下載文件到網站目錄當中去。
的同時display賦值的地方可以直接插入惡意的sql注入語句,導致可以查詢mysql數據庫裡的內容
並寫入數據到網站配置文件當中,或者可以讓數據庫遠程下載文件到網站目錄當中去。
我們隨便下載一份ecshop的版本源碼,可以看到user.php這個代碼裡的http_referer遠程讀取瀏
覽器來路信息的時候,傳遞回來的值會直接變量到black_act裡,並直接調用assign的方式去傳
入到數據庫,我們來看下代碼:
從代碼裡可以看出assign的函數調用的使用時要把傳入進來的參數變量遞給模板,然後再通過遠程
代碼將內容顯示到網站前端中去。在這個過程當中我們就可以插入一些惡意的sql注入語句直接執
行查詢數據庫命令操作。如下圖:
覽器來路信息的時候,傳遞回來的值會直接變量到black_act裡,並直接調用assign的方式去傳
入到數據庫,我們來看下代碼:
從代碼裡可以看出assign的函數調用的使用時要把傳入進來的參數變量遞給模板,然後再通過遠程
代碼將內容顯示到網站前端中去。在這個過程當中我們就可以插入一些惡意的sql注入語句直接執
行查詢數據庫命令操作。如下圖:
可以看到上面我們直接執行的sql語句,查詢打印了數據庫裡的信息,其實ecshop主要的漏洞根源
在於fetch函數的使用,這個函數可以通過_str、select等方式直接插入並執行遠程代碼。通過偽造
HTTP頭,把惡意的代碼插入到http頭裡去,通過GET、POST、cookies的提交方式直接寫入惡意
代碼到主機裡並執行,我們POC看下:
在於fetch函數的使用,這個函數可以通過_str、select等方式直接插入並執行遠程代碼。通過偽造
HTTP頭,把惡意的代碼插入到http頭裡去,通過GET、POST、cookies的提交方式直接寫入惡意
代碼到主機裡並執行,我們POC看下:
此referer裡的內容就是要網站遠程下載一個腳本大馬,下載成功後會直接命名為esafe.php,攻擊者
打開該文件就可以執行對網站的讀寫上傳下載等操作,甚至會直接入侵主機,拿到主機的管
理員權限。
打開該文件就可以執行對網站的讀寫上傳下載等操作,甚至會直接入侵主機,拿到主機的管
理員權限。
ecshop漏洞修復
目前ecshop官方並沒有升級任何版本,也沒有告知漏洞補丁,我們eSafe白帽資安網公司建議各位網站的
運營者對網站配置目錄下的lib_insert.php裡的id以及num的數據轉換成整數型,或者是將網站的
user.php改名,停止用戶管理中心的登錄,或者找專業的網站安全公司去修復漏洞補丁,做好網站
安全檢測與部署。對網站的images目錄寫入進行關閉,取消images的php腳步執行權限。
運營者對網站配置目錄下的lib_insert.php裡的id以及num的數據轉換成整數型,或者是將網站的
user.php改名,停止用戶管理中心的登錄,或者找專業的網站安全公司去修復漏洞補丁,做好網站
安全檢測與部署。對網站的images目錄寫入進行關閉,取消images的php腳步執行權限。