ECShop是一款基于PHP+MySQL的開源電子商務(wù)平臺,快速便捷的架構(gòu)和功能豐富的插件讓它成為了國內(nèi)中小型電商網(wǎng)站搭建的常用選擇。然而,有一款名為flow.php的核心文件虛擬路徑泄露漏洞卻讓ECShop頻頻陷入危機(jī):攻擊者可通過該漏洞獲取管理員的登錄密碼和其它重要的敏感信息,進(jìn)而完全控制該電子商務(wù)平臺運(yùn)行的服務(wù)器。本文將簡單介紹ECShop flow.php漏洞的原理、危害和防范措施。
首先,來看一下ECShop流程控制文件flow.php的作用:按照框架MVC設(shè)計模式,flow.php作為中心控制器,主要用于管理系統(tǒng)后臺的流程控制、系統(tǒng)參數(shù)操作以及訂單數(shù)據(jù)處理等。然而,正是由于flow.php結(jié)構(gòu)設(shè)計的特殊性,使得攻擊者能夠利用漏洞訪問此文件,從而獲取對后臺管理的控制權(quán)。具體而言,漏洞原理如下:
if (!defined('IN_ECS')) { die('Hacking attempt'); } require(dirname(__FILE__) . '/includes/init.php'); require(ROOT_PATH . 'includes/lib_order.php'); ......
以上代碼經(jīng)過簡單解釋后可以發(fā)現(xiàn),流程控制文件的安全保護(hù)不足,只要攻擊者偽造后臺會話ID和加入/flow.php等參數(shù)即可獲得管理運(yùn)營權(quán)限。換而言之,攻擊者通過GET或POST方式將“act”的值設(shè)置為“test”參數(shù),并加入sessionID就可以發(fā)起虛擬路徑請求繞過常規(guī)安全驗證,成功竊取管理員權(quán)限。PART 1 - 漏洞危害復(fù)現(xiàn):
http://www.ecshop.com/flow.php?act=test/..
通過上述請求,攻擊者實際獲得URL:“http://www.ecshop.com/flow.php”,接下來攻擊者可以重復(fù)該操作,依次訪問目標(biāo)網(wǎng)站的注冊、登錄、改密等重要操作頁面,從而完全掌控該電子商務(wù)平臺。
如果目標(biāo)網(wǎng)站超級管理員運(yùn)營權(quán)被掌控,攻擊者將隨意修改注冊用戶信息,篡改用戶訂單和支付的商品信息,大量發(fā)起虛假支付交易,從而導(dǎo)致目標(biāo)網(wǎng)站財務(wù)損失。除此之外,黑客甚至還可以在掌控運(yùn)營權(quán)的情況下安裝后門,盜取服務(wù)器文件和數(shù)據(jù)庫信息,導(dǎo)致嚴(yán)重的業(yè)務(wù)隱私泄露。因此,ECShop flow.php漏洞不容忽視。
針對該漏洞,提供以下幾點防范措施:
1.修改flow.php文件名:將該文件名改為其他無規(guī)則的名稱,從而實現(xiàn)對攻擊和掃描的防范。
2.限制流程控制文件: 通過nginx等web服務(wù)器進(jìn)行URL IP訪問控制,以限制流程控制文件的訪問。
3.生成流程控制隨機(jī)碼: 在系統(tǒng)初始化時為流程控制隨機(jī)生成一個固定幾位數(shù)的隨機(jī)碼,每次訪問流程控制文件都需要驗證隨機(jī)數(shù)的正確性,以實現(xiàn)有效通過流程控制的校驗。
綜上所述,ECShop flow.php漏洞已成為當(dāng)前電子商務(wù)服務(wù)器攻擊的搖籃,管理員必須認(rèn)真對待一切安全事件,采取適當(dāng)?shù)陌踩珯C(jī)制和預(yù)防措施,讓我們共同打造一個更健康繁榮的電子交易環(huán)境。