溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DVWA系列之14 文件包含漏洞分析

發(fā)布時(shí)間:2020-05-18 03:31:16 來源:網(wǎng)絡(luò) 閱讀:1546 作者:yttitan 欄目:安全技術(shù)

程序開發(fā)人員通常會(huì)把可重復(fù)使用的函數(shù)寫入到單個(gè)文件中,在使用某些函數(shù)時(shí),直接調(diào)用此文件,而無需再次編寫,這種調(diào)用文件的過程一般被稱為包含。程序開發(fā)人員都希望代碼更加靈活,所以通常會(huì)將被包含的文件設(shè)置為變量,用來進(jìn)行動(dòng)態(tài)調(diào)用,但正是由于這種靈活性,從而導(dǎo)致客戶端可以調(diào)用一個(gè)惡意文件,造成文件包含漏洞。

PHP中提供了四個(gè)文件包含的函數(shù),分別是include()、include_once()、require()和require_once(),它們的區(qū)別如下:

  • require找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤,并停止腳本運(yùn)行。

  • include找不到被包含的文件時(shí)只會(huì)產(chǎn)生警告,腳本將繼續(xù)運(yùn)行。

  • include_once與include類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包含,則不會(huì)再次包含。

  • require_once與require類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包含,則不會(huì)再次包含。

比如我們看下面這個(gè)例子,01.txt是一個(gè)正常的文本文件,但文件內(nèi)容卻是符合PHP語法的代碼:

DVWA系列之14 文件包含漏洞分析

在02.php文件中包含01.txt,代碼如下:

DVWA系列之14 文件包含漏洞分析

將這兩個(gè)文件都放到D:\AppServ\www目錄,然后在瀏覽器中訪問02.php,可以看到01.txt中的代碼被正確執(zhí)行了。接下來將02.txt文件的擴(kuò)展名分別改為jpg、rar、doc、xxx進(jìn)行測(cè)試,發(fā)現(xiàn)都可以正確顯示phpinfo信息。由此可知,只要文件內(nèi)容符合PHP語法規(guī)范,那么任何擴(kuò)展名都可以被PHP解析。

DVWA系列之14 文件包含漏洞分析

我們?cè)賱?chuàng)建一個(gè)測(cè)試文件03.txt,文件內(nèi)容是“Hello,world!”,并不符合PHP語法規(guī)范,可以發(fā)現(xiàn)這種文件可以直接顯示其內(nèi)容。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI