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 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安全公司,綠盟,啓明星辰,都是比較不錯的安全公司。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章