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