◆楊京 田嘉豪
淺談Web應用的文件包含漏洞與防護
◆楊京 田嘉豪
(陜西省網(wǎng)絡(luò)與信息安全測評中心 陜西 710065)
隨著網(wǎng)絡(luò)Web2.0、網(wǎng)絡(luò)移動社交等一系列新型的互聯(lián)網(wǎng)信息技術(shù)和網(wǎng)絡(luò)產(chǎn)品的不斷出現(xiàn),基于Web網(wǎng)絡(luò)環(huán)境下的互聯(lián)網(wǎng)新技術(shù)應用越來越廣泛,政府在投入發(fā)展信息化建設(shè)的整個過程中,越來越多的應用都鋪設(shè)在Web平臺上。Web應用迅速發(fā)展的同時,不斷加深人們對其的依賴,也吸引了互聯(lián)網(wǎng)黑客的注意。由于Web應用能夠讓任何登錄互聯(lián)網(wǎng)的人訪問,所以這些Web應用程序就成了大量黑客攻擊的目標,Web安全威脅態(tài)勢逐步升級。為了得到Web服務(wù)器的控制權(quán)限并開展攻擊活動,互聯(lián)網(wǎng)黑客利用各類Web漏洞進行網(wǎng)站篡改、數(shù)據(jù)竊取,更有甚者為了控制網(wǎng)站或服務(wù)器,插入惡意代碼,對人民財產(chǎn)和公眾利益造成嚴重侵害。如今,學習、挖掘及防范Web應用安全漏洞已是越來越多的企業(yè)、用戶關(guān)注的重點。
Web安全;文件包含;防護
Web應用程序在其開發(fā)的過程中,技術(shù)人員通常都是將一些可重復使用的函數(shù)寫到某個目錄文件中,在需要使用特定的函數(shù)時,對此類信息文件進行調(diào)用,而不必再次進行編寫,這種調(diào)用信息文件的整個過程通常被我們所稱為“包含”。如果包含的文件是動態(tài)的,通過一種動態(tài)包含的方式進行引入文件時,由于針對所傳入的文件名未通過過濾與校驗,導致對其他的文件進行了非授權(quán)操作,例如調(diào)用了一些已經(jīng)定義好的類或者是函數(shù),就很容易導致意外的文件泄露甚至惡意的代碼注入,而正是因為可以包含其他文件從而有可能會產(chǎn)生文件包含漏洞。
大多數(shù)Web語言都可以使用文件包含操作。目前,大部分Web應用由PHP開發(fā),由于PHP語言的文件包含功能強大因此也容易出現(xiàn)文件包含漏洞。
文件包含,包括本地文件包含和遠程文件包含兩種形式,下面對這兩種形式進行介紹。
第一,本地文件包含漏洞(Local File Include,本地文件包含故名包含的文件在本地服務(wù)器),它是PHP中一種較為典型的高危漏洞。本地文件包含就是通過瀏覽器包含Web服務(wù)器上的文件,當瀏覽器包含文件沒有進行嚴格的過濾時,允許遍歷目錄的字符注入瀏覽器并執(zhí)行,由于技術(shù)人員未對用戶輸入的內(nèi)容進行有效過濾與檢查,導致惡意用戶可以控制被包含的文件,一旦成功,Web應用服務(wù)器將一些特定文件當成php執(zhí)行,從而導致惡意用戶可獲取一定的服務(wù)器權(quán)限。
第二,遠程文件包含漏洞(Remote File Inclusion,遠程文件包含故名包含的文件不在本地服務(wù)器,而需要遠程訪問其他服務(wù)器)。它其實也屬于“代碼注入”的一種,其原理就是注入一段用戶能控制的腳本或代碼,由于瀏覽器對于用戶輸入沒有進行有效的過濾與檢查,導致其在服務(wù)端執(zhí)行惡意文件的代碼。該漏洞利用的前提是PHP開啟了遠程包含功能,且被包含的變量前沒有目錄的限制。
文件包含漏洞一旦被互聯(lián)網(wǎng)黑客進行惡意利用,不僅會暴露Web應用的配置文件,也會暴露自身的源代碼,為黑客進一步發(fā)掘Web應用漏洞提供條件,最終導致黑客控制整個網(wǎng)站甚至服務(wù)器。
因為文件包含漏洞的利用并不困難,往往是黑客常用的攻擊手段,下面列出幾點常見的防護措施。
使用白名單或者黑名單過濾,不要直接導入用戶輸入的內(nèi)容,同時也可以在做好過濾在包含的文件名前后加固定后綴。
使用目錄限制的方式,用固定好的路徑來規(guī)定用戶輸入的變量內(nèi)容,將被包含的文件限制在特定的目錄內(nèi),并設(shè)置禁止目錄跳轉(zhuǎn),以達到限制用戶可調(diào)用的目錄范圍的目的。比如,開啟 open_basedir 函數(shù),將其設(shè)置為指定目錄,則只有該目錄的文件允許被訪問,但是開啟 open_basedir 會影響性能。
限制用戶訪問目錄范圍:php.ini 中通過限制設(shè)置,比如 open_basedir 等等來限制目錄用戶能夠訪問特定目錄文件的目標以及范圍等,另外,apache中間件也有相關(guān)配置可進行限制。
設(shè)置用戶的訪問權(quán)限:在中間件中我們針對不同的用戶,可以限制當前中間件的用戶訪問權(quán)限,例如在Web 服務(wù)器中設(shè)置獨立的用戶,限制其僅可以訪問特定目錄和使用中間件的權(quán)限,從而也就能夠有效地避免惡意用戶越權(quán)訪問其他目錄文件。
本文簡要介紹了何為文件包含漏洞、文件包含漏洞分類及防護。面對文件包含漏洞,并不是無計可施,需要多注意維護Web應用的安全,發(fā)現(xiàn)異常及時采取措施。沒有絕對的安全,只有不斷加強安全防護。
[1]平小紅,惠鑫,容杰,劉攀.Web及網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全漏洞與應對技術(shù)探究[J].網(wǎng)絡(luò)安全技術(shù)與應用,2020(08):16-17.
[2]梁本來.Web應用安全漏洞與防御機制研究綜述[J].電腦知識與技術(shù),2021,17(01):54-55+68.
[3]袁勇,池靜.網(wǎng)站建設(shè)中網(wǎng)頁設(shè)計的安全漏洞及解決對策[J].網(wǎng)絡(luò)安全技術(shù)與應用,2006(07):76-77.