DVWA筆記之File Inclusion

File Inclusion,意思是文件包含(漏洞),是指當(dāng)服務(wù)器開(kāi)啟allow_url_include選項(xiàng)時(shí),就可以通過(guò)php的某些特性函數(shù)(include(),require()和include_once(),require_once())利用url去動(dòng)態(tài)包含文件,此時(shí)如果沒(méi)有對(duì)文件來(lái)源進(jìn)行嚴(yán)格審查,就會(huì)導(dǎo)致任意文件讀取或者任意命令執(zhí)行。文件包含漏洞分為本地文件包含漏洞與遠(yuǎn)程文件包含漏洞,遠(yuǎn)程文件包含漏洞是因?yàn)殚_(kāi)啟了php配置中的allow_url_fopen選項(xiàng)(選項(xiàng)開(kāi)啟之后,服務(wù)器允許包含一個(gè)遠(yuǎn)程的文件)。

low服務(wù)器代碼

<php
//Thepagewewishtodisplay
$file=$_GET['page'];
>

思路:
沒(méi)做任何的過(guò)濾。
直接http://.../dvwa/vulnerabilities/fi/?page=/etc/passwd

medium服務(wù)器代碼

<php

//Thepagewewishtodisplay
$file=$_GET['page'];

//Inputvalidation
$file=str_replace(array("http://","https://"),"",$file);
$file=str_replace(array("../","..\""),"",$file);

>

medium增加了過(guò)濾的:str_replace函數(shù),對(duì)page參數(shù)進(jìn)行了一定的處理,將”http:// ”、”https://”、 ” ../”、”..\”替換為空字符,即刪除。
str_replace函數(shù) 可以用雙寫(xiě)繞過(guò)。
例如
http://可以用 hthttp://tp://繞過(guò)
../、..\可以用絕對(duì)路徑也可以雙寫(xiě)。

high服務(wù)器代碼

<php

//Thepagewewishtodisplay
$file=$_GET['page'];

//Inputvalidation
if(!fnmatch("file*",$file)&&$file!="include.php"){
   //Thisisn'tthepagewewant!
echo"ERROR:Filenotfound!";
exit;
}

>

High級(jí)別的代碼使用了fnmatch函數(shù)檢查page參數(shù),要求page參數(shù)的開(kāi)頭必須是file,服務(wù)器才會(huì)去包含相應(yīng)的文件。
High級(jí)別的代碼規(guī)定只能包含file開(kāi)頭的文件,看似安全,不幸的是我們依然可以利用file協(xié)議繞過(guò)防護(hù)策略。file協(xié)議其實(shí)我們并不陌生,當(dāng)我們用瀏覽器打開(kāi)一個(gè)本地文件時(shí),用的就是file協(xié)議
直接
http://.../dvwa/vulnerabilities/fi/?page=file:///etc/passwd
至于執(zhí)行任意命令,需要配合文件上傳漏洞利用。首先需要上傳一個(gè)內(nèi)容為php的文件,然后再利用file協(xié)議去包含上傳文件(需要知道上傳文件的絕對(duì)路徑),從而實(shí)現(xiàn)任意命令執(zhí)行。

Impossible服務(wù)器代碼

<php
//Thepagewewishtodisplay
$file=$_GET['page'];

//Onlyallowinclude.phporfile{1..3}.php
if($file!="include.php"&&$file!="file1.php"&&$file!="file2.php"&&$file!="file3.php"){
//Thisisn'tthepagewewant!
echo"ERROR:Filenotfound!";
exit;
}

>

可以看到,Impossible級(jí)別的代碼使用了白名單機(jī)制進(jìn)行防護(hù),簡(jiǎn)單粗暴,page參數(shù)必須為“include.php”、“file1.php”、“file2.php”、“file3.php”之一,徹底杜絕了文件包含漏洞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容