DVWA File Inclusion——Writeup
文件包含:
即File Inclusion,意思是文件包含(漏洞),是指當(dāng)服務(wù)器開啟allow_url_include選項時,就可以通過php的某些特性函數(shù)(include(),require()和include_once(),require_once())利用url去動態(tài)包含文件,此時如果沒有對文件來源進(jìn)行嚴(yán)格審查,就會導(dǎo)致任意文件讀取或者任意命令執(zhí)行。文件包含漏洞分為本地文件包含漏洞與遠(yuǎn)程文件包含漏洞,遠(yuǎn)程文件包含漏洞是因為開啟了php配置中的allow_url_fopen選項(選項開啟之后,服務(wù)器允許包含一個遠(yuǎn)程的文件)。服務(wù)器通過php的特性(函數(shù))去包含任意文件時,由于要包含的這個文件來源過濾不嚴(yán),從而可以去包含一個惡意文件,而我們可以構(gòu)造這個惡意文件來達(dá)到自己的目的。
文件包含漏洞:
攻擊者利用了包含的特性,再加上了應(yīng)用本身對文件控制不嚴(yán),對include進(jìn)來的文件不可控,最終造成了攻擊者進(jìn)行任意文件包含。包含進(jìn)來的文件都以當(dāng)前腳本文件解析,比如,我們當(dāng)前測試系統(tǒng)是Apache加php環(huán)境,那么被include進(jìn)來的文件,不管是什么類型,比如說圖片,文本文檔,這些文件被包含以后,都會被當(dāng)做php腳本來解析。
LOW
源碼:
測試:本地文件包含,在目錄中加一個test.txt
執(zhí)行成功:
注意:無論文件后綴名是什么,只要文件內(nèi)容為php腳本都會正確解析并且執(zhí)行
漏洞利用:
實際利用需要利用文件上傳漏洞,上傳木馬,
fputs函數(shù):為php函數(shù),功能和fwrite函數(shù)一樣,表示創(chuàng)建一個新文件,這樣上傳成功以后就會在當(dāng)前平臺文件所在目錄下面創(chuàng)建一個含有木馬的dvwainclusion.php文件
蟻劍連接,這個就很恐怖了,可以打開我電腦下所有文件
medium:
源碼
str_replace函數(shù)將 “http://” “https:\” “…/” “…” 替換成空
繞過 :
所有 “http://” 用 “htthttp://p://” 代替
"…/“用”…/./"代替
以此類推
遠(yuǎn)程文件包含:
后面的漏洞利用就與low操作相同了
high:
High級別的代碼使用了fnmatch函數(shù)檢查page參數(shù),要求page參數(shù)的開頭必須是file,服務(wù)器才會去包含相應(yīng)的文件。
High級別的代碼規(guī)定只能包含file開頭的文件,看似安全,不幸的是我們依然可以利用file協(xié)議繞過防護(hù)策略。
使用file:///協(xié)議可以成功訪問,其余的步驟就和前面一樣了
impossible
可以看到,Impossible級別的代碼使用了白名單機(jī)制進(jìn)行防護(hù),簡單粗暴,page參數(shù)必須為“include.php”、“file1.php”、“file2.php”、“file3.php”之一,徹底杜絕了文件包含漏洞。
強(qiáng)行總結(jié)
防御從低到高依次:
無防護(hù)無過濾
str_replace函數(shù)過濾 “http://” “https:\” “…/” “…”(str_replace 函數(shù)具有危險性,比較容易繞過,例如雙寫)
fnmatch函數(shù)檢查參數(shù)開頭
白名單限制(簡單有效)
總結(jié)
以上是生活随笔為你收集整理的DVWA File Inclusion——Writeup的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京汽车的租赁平台叫什么?
- 下一篇: 88路哪站到二手车市场近点?