安全研究

文件(jiàn)包含漏洞

漏洞描述

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

修複建議

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