天天看點

ecshop 漏洞如何修複 更新檔更新與安全修複詳情

目前ecshop漏洞大面積爆發,包括最新版的ecshop 3.0,ecshop 4.0,ecshop2.7.3全系列版本都存在着高危網站漏洞,導緻網站被黑,被篡改,被挂馬,許多商城系統深受其漏洞的攻擊,給商城的營運者以及網站營運者帶來很大的經濟損失,甚至有些ecshop還被跳轉到了一些惡意網站上去。那麼ecshop漏洞如何修複呢?

首先我們要先了解下ecshop漏洞的發生根源,我們SINE安全工程師對其所有版本的代碼進行了全面的人工安全檢測,以及網站漏洞檢測,發現ecshop根目錄下的user.php檔案存在遠端代碼執行sql注入漏洞,我們對ecshop的user.php進行檢視,在302行裡我們發現了安全問題:

back_act這個變量的值來自于前端post送出方式的資料中,包含的http_referer這個函數裡,這個函數可以插入惡意的sql注入代碼,為什麼可以插入呢?原理很簡單,ecshop商城使用的模闆引擎是采用smarty引擎,這個引擎在國内是比較有名的,大多數都會調用到一些常用的參數,比如assign,display這兩個常用的引擎函數,由于assign的函數是需要模闆執行的時候才能指派,是以首先運作的就是smarty模闆引擎,前端會讀取模闆檔案然後将值給指派到函數當中去,那麼傳遞過來的值就可以插入惡意的遠端執行代碼,并傳入到伺服器端進行執行。

我們來看下模闆引擎檔案,如下圖所示:

ecshop 漏洞如何修複 更新檔更新與安全修複詳情

從上圖中的函數echash,首先會調用一個user password的一個模闆檔案,在這個模闆檔案中來變量指派,進行模闆引擎的解析操作,也就是說會把引擎裡的assign函數注冊到變量裡去,并進行模闆解析,傳回到insert_mod函數進行網站互動處理。

ecshop漏洞利用 使用exp代碼,在post資料包中我們抓取一下,然後僞造referer:插入:

Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:

{s:3:”num”;s:72:”0,1 procedure analyse(extractvalue(rand(),concat

(0x7e,version())),1)– -“;s:2:”id”;i:1;}

這個是查詢資料庫版本的一個sql注入語句,執行後會傳回資料到前端,如下圖:

ecshop 漏洞如何修複 更新檔更新與安全修複詳情
ecshop 漏洞如何修複 更新檔更新與安全修複詳情

上圖已經傳回了資料庫的版本資訊,那麼攻擊者就可以構造遠端代碼執行資料庫操作,上傳木馬後門到網站裡去,并進行篡改網站即可。

ecshop 3.0版本的漏洞,是因為漏洞産生的原因在于includes目錄下safety.php 檔案,這個代碼檔案主要是限制一些惡意參數的寫入,會自動比對一些資料庫查詢語句,不管是加密還是都會攔截這些惡意的參數,包括資料庫的執行語句,但是在整個代碼的安全檢測中我們發現這個ecshop3.0竟然可以執行指令,利用playload進行編碼繞過,就可以執行遠端指令,包括可以使用union聯合查詢。

ecshop 漏洞修複

關于ecshop4.0 漏洞修複我們可以對根目錄下的includes檔案夾下的lib_insert.php這個檔案進行編寫,将asrr [num]跟ID這兩個值,進行強制的轉換成整數型,這樣導緻SQL語句無法執行了,就可以修複ecshop4.0版的漏洞,那麼ecshop2.7.3以及.ecshop3.0版本的網站,目前官方并沒有漏洞修複更新檔,建議網站營運者先将user.php改名,或者删除,并對網站進行防篡改部署,限制修改,隻允許讀取操作,對網站進行sql防注入部署,對http_referer裡的值進行非法參數攔截,并做攔截日志記錄,如果對安全不是太懂的話建議找專業的網站安全公司來修複漏洞,做好網站安全部署,國内SINE安全公司,綠盟,啟明星辰,都是比較不錯的安全公司。