文件包含漏洞是一(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)代碼。