file inclusion,意思是檔案包含(漏洞),是指當伺服器開啟allow_url_include選項時,就可以通過php的某些特性函式(include(),require()和include_once(),require_once())利用url去動態包含檔案,此時如果沒有對檔案**進行嚴格審查,就會導致任意檔案讀取或者任意命令執行。
檔案包含漏洞分為本地檔案包含漏洞與遠端檔案包含漏洞,遠端檔案包含漏洞是因為開啟了php配置中的allow_url_fopen選項(選項開啟之後,伺服器允許包含乙個遠端的檔案)。
low級別:
原始碼:
vulnerabilities/fi/source/low.php可以發現,伺服器對page引數沒有任何的過濾和檢查。伺服器希望使用者點選圖中的三個鏈結,伺服器會包含相應檔案,並將結果返回。需要說明的是。不管檔案字尾是否是php,都會當做php檔案執行,如果檔案內容確認為php,則正常執行並返回結果,如果不是,則返回列印檔案內容,所以檔案包含漏洞常常會導致任意檔案讀取與任意命令執行。<?php
//the page we wish to display
$file = $_get[ 'page'];
?>
漏洞利用一:
構造url(絕對路徑):
這樣,就成功讀取了伺服器的檔案。同時也可以再page後加相對路徑,道理相同。
可以看到,medium級別的**增加了str_replace函式,對page引數進行了一定的處理,
將」http:// 」、」https://」、 」 ../」、」..\」替換為空字元,即刪除。
漏洞利用:可以通過雙寫繞過waf。同時過濾的比較少,採用絕對路徑的辦法不受影響。
high
**:
//thepagewewishtodisplay可以看到,high級別的**使用了fnmatch函式檢查page引數,要求page引數的開頭必須是file,伺服器才會去包含相應的檔案。$file=$_get['page'];
//inputvalidation
if(!fnmatch("file*",$file)&&$file!="include.php")
看似安全,其實可以利用file協議繞過防護策略。file協議其實我們並不陌生,當我們用瀏覽器開啟乙個本地檔案時,用的就是file協議。
構造url:
DVWA之XSS(反射型)
伺服器 low array key exists key,array 函式檢查某個陣列中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false。可以看出 只是判斷name是否存在是否為空,並沒有任何的過濾。漏洞利用 伺服器端 medium str replace find...
DVWA之檔案包含詳解
在web應用中,開發人員為了提高開發效率,通常會把多個頁面存在的共用功能編寫在乙個檔案 中,當其他頁面需要使用的時候,利用檔案包含的函式就可以呼叫這部分的 如果伺服器配置不當或者對使用者輸入的資料過濾不嚴,就會導致使用者可以修改檔案包含的位址,操作意料之外的檔案或進行惡意 注入。require 找不...
dvwa如何開啟 DVWA安裝教程
一 dvwa安裝所需環境 net framework 3.5 php mysql 注 不需要單獨安裝上述軟體,後文中有描述整合的軟體 二 安裝包 1,xampp 2,dvwa 注 本文使用的是xampp,網上描述使用wampserver也可以 三 安裝過程 注意 首先要安裝apache和mysql服...