ecshop目前最新版本為4.0,是國內(nèi)開源的一套商城系統(tǒng),很多外貿(mào)公司,以及電商平臺都在使用,正因為使用的人數(shù)較多,很多攻擊者都在挖掘該網(wǎng)站的漏洞,就在最近ecshop被爆出高危漏洞,該漏洞利用跨站偽造函數(shù),來對網(wǎng)站數(shù)據(jù)庫進行攻擊。
ecshop 漏洞詳情
該網(wǎng)站漏洞發(fā)生的根本原因是根目錄下的user.php文件,在第315-365行里的代碼里,該代碼主要是處理用戶注冊,用戶登錄的一些功能請求處理,與數(shù)據(jù)庫進行通信查詢用戶的賬號密碼是否正確,以及寫入數(shù)據(jù)庫中用戶的注冊資料等信息。我們使用一臺windows2008服務(wù)器來搭建下ecshop系統(tǒng)的環(huán)境,我們使用IIS7.5+mysql數(shù)據(jù)庫,php的版本為5.3,在官方下載最新版。
我們來看下發(fā)生問題的user.php代碼,如下圖:
從上面的代碼可以看出,用戶在登錄的時候會先將變量值action傳入到login進行賦值變成登錄的主要代碼,當(dāng)?shù)卿浾埱蟮臅r候,系統(tǒng)會將referer里的值傳遞給back_act這個參數(shù)里,導(dǎo)致網(wǎng)站漏洞發(fā)生,由于傳入的參數(shù)可以傳遞給assign的函數(shù)中去,導(dǎo)致模板注冊給改變了變量,可以插入跨站腳本攻擊代碼進去,直接插入到html文件里。
本身ecshop網(wǎng)站,當(dāng)初設(shè)計的時候就有安全攔截系統(tǒng),對一些非法的參數(shù),攻擊代碼進行了強制的轉(zhuǎn)換與攔截,有一些安全的攔截規(guī)則,我們可以從includes目錄下的safety.php文件可以看出來,如下圖:
網(wǎng)站系統(tǒng)的攔截規(guī)則寫的非常簡單,只是過濾了常用的html標簽以及eval一句話代碼的特征,一些敏感的特殊字符,像《》*%#都攔截掉了。但是ecshop官方疏忽了JS跨站彈窗的一個函數(shù),confirm可以直接插入代碼進行使用,漏洞的使用就是繞過ecshop安全攔截規(guī)則,把攻擊代碼直接寫入到html里。我們可以使用html的編碼方式進行繞過,構(gòu)造如下的代碼:
GET /ECShop4.0/user.php
HTTP/1.1
Referer:" />
('Cyc1e_test')><imgsrc="xxxxx< p="">
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21
(KHTML, like Gecko)Chrome/41.0.2228.0
Safari/537.21Cookie:ECS_ID=17b608d2a679cf2c7e8611581478e6929dbfb34b;ECS
[visit_times]=2Connection:keep-aliveAccept: */*Accept-
Encoding:gzip,deflateHost:
利用get的提交方式將我們構(gòu)造的惡意代碼寫入到數(shù)據(jù)包中,提交到網(wǎng)站里。這樣直接繞過了ecshop的安全檢測,該漏洞的使用需要用戶點擊圖片才可以使漏洞正常使用。
關(guān)于ecshop網(wǎng)站漏洞的修復(fù)建議:
對ecshop safety.php文件進行安全過濾,對#97以及href,,進行強制的攔截,html實體編碼也進行攔截,如果對代碼不是太懂的話,也可以對模板文件進行安全權(quán)限限制,ecshop官方目前沒有對此跨站漏洞進行漏洞修復(fù)與升級補丁,建議使用4.0版本的網(wǎng)站,刪除user.php注冊功能,如果自己懂程序,那就可以自己針對代碼的漏洞進行ecshop漏洞修復(fù),不懂的話,可以找專業(yè)的網(wǎng)站安全公司來修復(fù)ecshop漏洞,國內(nèi)像SINE安全、綠盟安全、啟明星辰都是比較專業(yè)的安全公司,很多攻擊者之所以能植入木馬病毒,就是抓住了ecshop網(wǎng)站代碼上的漏洞。本文來源:www.sinesafe.com
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!