您好,登錄后才能下訂單哦!
ecshop目前最新版本為4.0,是國內開源的一套商城系統,很多外貿公司,以及電商平臺都在使用,正因為使用的人數較多,很多攻擊者都在挖掘該網站的漏洞,就在最近ecshop被爆出高危漏洞,該漏洞利用跨站偽造函數,來對網站數據庫進行攻擊。
ecshop 漏洞詳情
該網站漏洞發生的根本原因是根目錄下的user.php文件,在第315-365行里的代碼里,該代碼主要是處理用戶注冊,用戶登錄的一些功能請求處理,與數據庫進行通信查詢用戶的賬號密碼是否正確,以及寫入數據庫中用戶的注冊資料等信息。我們使用一臺windows2008服務器來搭建下ecshop系統的環境,我們使用IIS7.5+mysql數據庫,php的版本為5.3,在官方下載最新版。
我們來看下發生問題的user.php代碼,如下圖:
從上面的代碼可以看出,用戶在登錄的時候會先將變量值action傳入到login進行賦值變成登錄的主要代碼,當登錄請求的時候,系統會將referer里的值傳遞給back_act這個參數里,導致網站漏洞發生,由于傳入的參數可以傳遞給assign的函數中去,導致模板注冊給改變了變量,可以插入跨站腳本攻擊代碼進去,直接插入到html文件里。
本身ecshop網站,當初設計的時候就有安全攔截系統,對一些非法的參數,攻擊代碼進行了強制的轉換與攔截,有一些安全的攔截規則,我們可以從includes目錄下的safety.php文件可以看出來,如下圖:
網站系統的攔截規則寫的非常簡單,只是過濾了常用的html標簽以及eval一句話代碼的特征,一些敏感的特殊字符,像《》*%#都攔截掉了。但是ecshop官方疏忽了JS跨站彈窗的一個函數,confirm可以直接插入代碼進行使用,漏洞的使用就是繞過ecshop安全攔截規則,把攻擊代碼直接寫入到html里。我們可以使用html的編碼方式進行繞過,構造如下的代碼:
GET /ECShop4.0/user.php
HTTP/1.1
Referer:" /><a href=java:alert
('Cyc1e_test')><imgsrc="xxxxx
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的提交方式將我們構造的惡意代碼寫入到數據包中,提交到網站里。這樣直接繞過了ecshop的安全檢測,該漏洞的使用需要用戶點擊圖片才可以使漏洞正常使用。
關于ecshop網站漏洞的修復建議:
對ecshop safety.php文件進行安全過濾,對#97以及href,,進行強制的攔截,html實體編碼也進行攔截,如果對代碼不是太懂的話,也可以對模板文件進行安全權限限制,ecshop官方目前沒有對此跨站漏洞進行漏洞修復與升級補丁,建議使用4.0版本的網站,刪除user.php注冊功能,如果自己懂程序,那就可以自己針對代碼的漏洞進行ecshop漏洞修復,不懂的話,可以找專業的網站安全公司來修復ecshop漏洞,國內像SINE安全、綠盟安全、啟明星辰都是比較專業的安全公司,很多攻擊者之所以能植入木馬病毒,就是抓住了ecshop網站代碼上的漏洞。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。