安全研究

文件包含漏洞

漏洞描述

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

修複建議

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