安全研究

文(wén)件包含漏洞

漏洞描述

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

修複建議(yì)

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