安全研究

文件包含漏洞

漏洞描述

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

修複建議

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