文件包含漏洞是一種(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 服務器的訪問日志)的文件,仍然可以導緻遠程執行代碼。