由於開發人員編寫原始碼,將可重複使用的**插入到單個的檔案中,並在需要的時候將它們包含在特殊的功能**檔案中,然後包含檔案中的**會被解釋執行。由於並沒有針對**中存在檔案包含的函式入口做過濾,導致客戶端可以提交惡意構造語句提交,並交由伺服器端解釋執行。檔案包含攻擊中web伺服器原始碼裡可能存在inlcude()此類檔案包含操作函式,通過客戶端構造提交檔案路徑,是該漏洞攻擊成功的最主要原因。
如果攻擊者為動態包含指令指定乙個有效檔案,那麼該檔案的內容會被傳遞給 php 解析器,可直接在遠端伺服器上執行任意php檔案。
如果攻擊者能夠指定一條路徑來指向被自己控制的遠端站點,那麼動態 include 指令就會執行由攻擊者提供的任意惡意**,也就是所謂的「遠端檔案包含」。
在開始實驗之前,出現了小問題在最上面出現紅色的 the php function allow_url_include is not enabled. 提示,我是用php study搭建的學習環境,在軟體介面選擇:其他選項選單->開啟配置檔案->php-ini1.觀察:
分別點選三個檔案,可以通過觀察看到,url分別是:
只有page後面有變化
2.測試:
可以發現開啟了www資料夾下的index.php檔案
也就是說通過page=「」的形式,可以檢視你想要受害者檢視的檔案,配合檔案上傳漏洞,就可以輕易的形成破壞。
1.測試:
繼續用進行測試,發現報錯
failed to open stream: no such file or directory
說明不能這樣直接在page後開啟
2.嘗試其他方法:
但是第二行大的報錯給了資訊了:failed opening '127.0.0.1/index.php' for inclusion
所以先嘗試page=後大小寫混合
完美,可以的!
1.嘗試:
均失敗,而且錯誤一致!
2.檢視:
懷疑是對?page=後內容進行了判斷,檢視源**
其中有 if( !fnmatch( "file*", $file ) && $file != "include.php" ) ,果然,進行了"file"匹配,所以把page後的內容改為file開頭的
執行成功!其中c:/phpstudy/phptutorial/www/是伺服器中的絕對路徑
impossible模式目前看來無懈可擊;
配合所有等級的源**分析:
low:
<?php//the page we wish to display
$file = $_get[ 'page'];
?>
沒有任何防護,可以任意破壞,現實中肯定沒有這樣的。
黑名單模式,把"http://","https://","../","..\"",替換成空"",實際上黑名單不安全,有限,轉換大小寫輕易繞過。
high:
<?php//the page we wish to display
$file = $_get[ 'page'];
//input validation
if( !fnmatch( "file*", $file ) && $file != "include.php")
?>
白名單模式,但是這裡白名單算是留了後路,因為只是同意file開頭,絕對路徑可以侵入。
impossible:
<?php//the page we wish to display
$file = $_get[ 'page'];
//only allow include.php or file.php
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php")
?>
絕對白名單,只有四個檔案可以,這樣一來就很安全了,除非把伺服器裡這個四個檔案給改了。
DVWA系列之15 檔案包含漏洞利用
明白了檔案包含的原理之後,下面我們進入dvwa,選擇low級別的檔案包含。在頁面中有提示,可以編輯url中的page引數從而包含指定的檔案,預設情況下包含的是include.php檔案。讀取敏感檔案是檔案包含漏洞的主要利用方式之一,比如伺服器採用linux系統,而使用者又具有相應的許可權,那麼就可以...
DVWA系列之14 檔案包含漏洞分析
程式開發人員通常會把可重複使用的函式寫入到單個檔案中,在使用某些函式時,直接呼叫此檔案,而無需再次編寫,這種呼叫檔案的過程一般被稱為包含。程式開發人員都希望 更加靈活,所以通常會將被包含的檔案設定為變數,用來進行動態呼叫,但正是由於這種靈活性,從而導致客戶端可以呼叫乙個惡意檔案,造成檔案包含漏洞。p...
DVWA 檔案包含漏洞
檔案包含是正常現象,主配置檔案有基礎的一些配置,nginx虛擬機器,include需要包含進來 檔案包含漏洞 file inclusion,檔案包含 漏洞 危害 注意 檔案包含本身是沒有問題的,問題出在如果在執行檔案包含動作時沒有對檔案內容進行審核造成漏洞利用。1 低安全級別 1 本地檔案包含 進行...