文件包含漏洞——DVWA练习
前言:在學習文件上傳時,制作的圖片馬需要我們手動去解析,而解析的方法就算用到了文件包含漏洞,所以這次就來學習一下文件包含漏洞。
文件包含漏洞簡介
(一)文件包含可以分為本地文件包含和遠程文件包含兩種。文件包含和文件上傳一樣本身并不是漏洞,而是攻擊者利用了包含的特性加上了應用本身對文件控制不嚴格,對include進來的文件不可控,才導致了一系列危害。
(二)本地文件包含就是通過URL將服務器本地的其他文件include進來。遠程文件包含就是將遠程服務器的文件include進來。
(三)最主要的是,包含進來的文件都以當前腳本文件解析,例如,當前測試系統是Apache加php環境,那么被include進來的文件,不管是什么類型,例如圖片,文本文檔等,這些文件被包含以后,都會被當做php腳本來解析。
本地文件包含
通過瀏覽器包含web服務器上的文件,這種漏洞是因為瀏覽器包含文件時沒有進行嚴格 的過濾允許遍歷目錄的字符注入瀏覽器并執行。
總的來說就是被包含的文件在服務器本地
遠程文件包含
在遠程服務器上預先設置好的腳本,然后攻擊者利用該漏洞包含一個遠程的文件,這種漏洞的出現是因為瀏覽器對用戶的輸入沒有進行檢查,導致不同程度的信息泄露、拒絕服務攻擊 甚至在目標服務器上執行代碼
簡單的說就是被包含的文件在第三方服務器
文件包含常用函數
以php為例,常用的文件包含函數有:
Include() #當包含并運行指定文件時,包含的外部文件發生錯誤,系統會給出警告,但整個php文件還會繼續執行。 Require() /*require()與 include()的區別在于 require()執行如果發生錯誤,函數會輸出 錯誤信息,并終止腳本的運行。*/ include_once() /*和include沒有什么區別,只是在導入函數之前先檢測下該文件是否被include過,如果已經執行了一遍,那么就不在進行第二次的include操作。*/ require_once() #功能與 require()相同,區別在于當重復調用同一文件時,程序只調用一次DVWA練習
了解了一些文件包含漏洞的簡介和常用函數,下面就通過萬能的DVWA來進行文件包含漏洞的練習
注意: 使用遠程包含需要開啟allow_url_include在此之前,先來了解一下./和../以及/
/ 根目錄 ./ 是當前目錄 ../ 返回到上一級目錄 ../../ 返回了兩級目錄 .\ 、..\和./、../意義相同low
觀察源碼發現直接是get方法進去,沒有任何過濾,那么就來執行文件包含漏洞
輸入
發現
本地文件包含成功
遠程文件包含
這里就先在自己的服務器根目錄(WWW目錄下)下創建一個文件
然后通過遠程文件包含來執行
輸入
發現遠程包含成功
這里也可以用虛擬機和主機來進行遠程文件包含漏洞的測試,不過這里就以本地的服務器來進行測試。
medium
發現medium已經過濾了http://、../等,那么就來構造這樣的方法來進行繞過
?page=..././..././phpinfo.php源碼中過濾了../,所以我們輸入的經過過濾后變成
?page=../../phpinfo.php這樣依舊是沒有過濾掉../,通過錯位進行拼接成../
其實感覺繞過方法大多都是互通的,這種繞過在SQL注入、XSS攻擊等都是出現過的
本地文件包含成功,接下來來嘗試遠程文件包含
源碼中是過濾了http://、https://,可以嘗試大小寫進行繞過,也可以通過雙寫進行繞過例如:httphttp://://
?page=Http://127.0.0.1/file.txt即可繞過
High
源碼中限制了文件名來防止惡意文件包含,并且!fnmatch( "file*", $file )代碼使用了fnmatch函數檢查page參數,要求page參數的開頭必須是file,服務器才會去包含相應的文件。所以就用到了file協議,就來了解一下file協議。
file協議
本地文件傳輸協議 ,file協議主要用于訪問本地計算機中的文件.file協議的基本格式
file:///文件路徑 如打開D盤www文件下的PHPinfo文件 file:///D:/www/phpinfo 注意:后面必須是絕對路徑:了解了file協議,就構造相應的語句即可進行文件包含
?page=file:///D:/phpstuy/www/file.txtimpossible
分析一下源碼
發現if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" )這一句代碼已經將page的參數限制成固定的值了,所以沒有辦法進行文件包含。
總結:這次算是大致了解了一些文件包含漏洞的知識,但是文件包含還有很多繞過姿勢,接下來繼續學習!
總結
以上是生活随笔為你收集整理的文件包含漏洞——DVWA练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件上传漏洞——upload-labs(
- 下一篇: XCTF(攻防世界)—进阶web题Wri