安全研究

文件(jiàn)包含漏洞

漏洞描述

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

修複建議(yì)

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