安全研究

文件包含漏洞

漏洞描述

文件包含漏洞是一(yī)種針對依賴于腳本運行(xíng)時間的(de) Web 應用程序的(de)漏洞。當應用程序使用攻擊者控制的(de)變量構建可(kě)執行(xíng)代碼的(de)路徑時,一(yī)旦其允許攻擊者控制運行(xíng)時執行(xíng)哪個文件,則會引發該漏洞。文件包含漏洞會破壞應用程序加載代碼的(de)執行(xíng)方式。該漏洞可(kě)被利用在服務器上遠程執行(xíng)命令。攻擊者可(kě)以把上傳的(de)靜态文件或網站日志文件作為(wèi)代碼執行(xíng),獲取服務器權限,并進一(yī)步篡改用戶和(hé)交易數據,惡意删除網站等。
遠程文件包含(RFI)在 Web 應用程序下載并執行(xíng)遠程文件時發生。這些遠程文件通常以 HTTP 或 FTP URI 的(de)形式,作為(wèi)用戶向 Web 應用程序提供的(de)參數而獲取。
本地(dì)文件包含(LFI)類似于遠程文件包含,除了不包含遠程文件外,隻有(yǒu)本地(dì)文件(當前服務器上的(de)文件)可(kě)以被包含用于執行(xíng)。通過包含一(yī)個帶有(yǒu)攻擊者控制數據(如(rú) Web 服務器的(de)訪問日志)的(de)文件,仍然可(kě)以導緻遠程執行(xíng)代碼

修複建議

嚴格檢查變量是否已經初始化。
建議您假定所有(yǒu)輸入都是可(kě)疑的(de),嘗試對所有(yǒu)提交的(de)輸入中可(kě)能包含的(de)文件地(dì)址(包括服務器本地(dì)文件及遠程文件)進行(xíng)嚴格的(de)檢查,參數中不允許出現 ../ 之類的(de)目錄跳轉符。
嚴格檢查 include 類的(de)文件包含函數中的(de)參數是否外界可(kě)控。
不要僅僅在客戶端做(zuò)數據的(de)驗證與過濾,将關鍵的(de)過濾步驟放在服務端執行(xíng)。
在發布應用程序前,測試所有(yǒu)已知的(de)威脅
Copyright © 2019 All Rights Reserved Designed
杭州帕拉迪網絡科(kē)技有(yǒu)限公司