舊版ECShop漏洞影響眾多B2C商城 360提示網站升級系統
3月29日,360網站安全檢測平臺發布漏洞警報稱,國內大量B2C網上商城正面臨高危漏洞威脅,可能導致網站被黑客入侵控制、消費者帳號密碼等數據泄露。據悉,這部分網站使用了老版本ECShop網店建站系統,至今未修復一個曝光多年的“本地文件包含漏洞”,為此360網站安全檢測平臺已通知客戶升級ECShop版本,并提供更便捷的代碼修復方案。
360網站安全檢測平臺服務網址:http://webscan.360.cn
據了解,ECShop是業界知名的B2C開源網店系統,適合企業及個人快速構建個性化網上商城。早在2010年4月,ECShop官方版本修復了“本地文件包含漏洞”,但由于大批網站欠缺安全意識,遲遲沒有升級到V2.7.2及以上版本,因此才會給黑客長期攻擊漏洞的機會,這部分網站比例高達40%。
經360安全工程師分析,舊版ECShop漏洞源于js/calendar/ calendar.php 文件,“由于$lang變量的檢測不嚴。黑客可以繞過一些邏輯判斷,將惡意字符串帶入include_once包含語句,造成‘本地文件包含漏洞’利用。”
圖:360WebScan分析舊版ECShop“本地文件包含漏洞”
360安全工程師表示,黑客借該漏洞可能獲取網站服務器內敏感信息,甚至執行任意代碼,進而獲取應用程序和服務器權限,對B2C電商網站用戶數據和賬戶信息形成威脅。同時由于漏洞曝光日久,漏洞原理和攻擊方法已廣泛傳開,這類“老漏洞”往往更容易吸引大批黑客入侵。
為保護電商網站業務和消費者數據安全,360建議使用舊版ECShop系統的電商網站立即升級至官方最新版本,或修改代碼來封堵漏洞,方法如下:
打開 js/calendar/ calendar.php 文件,找到文件判斷位置:
if (!file_exists('../languages/' . $lang . '/calendar.php'))
{
$lang = 'zh_cn';
}
按照ECShop官方解決方案將if語句修改為:
if (!file_exists('../languages/' . $lang . '/calendar.php') || strrchr($lang,'.'))
或采取360解決方案修改代碼如下:
if (!file_exists('../languages/' . $lang . '/calendar.php') || !in_array($lang,array("en_us","zh_cn","zh_tw"),true))