在web應用中,開發人員為了提高開發效率,通常會把多個頁面存在的共用功能編寫在乙個檔案 中,當其他頁面需要使用的時候,利用檔案包含的函式就可以呼叫這部分的**。如果伺服器配置不當或者對使用者輸入的資料過濾不嚴,就會導致使用者可以修改檔案包含的位址,操作意料之外的檔案或進行惡意**注入。
require:找不到被包含的檔案,報錯,並且停止執行指令碼。
include:找不到被包含的檔案,只會報錯,但會繼續執行指令碼。
require_once:與require類似,區別在於當重複呼叫同一檔案時,程式只呼叫一次。
include_once:與include類似,區別在於當重複呼叫同一檔案時,程式只呼叫一次。
?page=a.php
?home=b.html
?file=content
源**
<?php
// the page we wish to display
$file
=$_get
['page'];
?>
可以看到low等級沒有做任何過濾。首先嘗試一下包含乙個不存在的檔案。
通過源**可以看到過濾了http://和https://以及…/和…
我們可以通過檔案的絕對路徑來包含檔案
檢視源**
<?php
// the page we wish to display
$file
=$_get
['page'];
// input validationif(
!fnmatch
("file*"
,$file)&&
$file
!="include.php"
)?>
high級別的**對包含的檔名進行了限制,必須為 file* 或者 include.php ,否則會提示error:file not found
我們可以通過file協議來進行繞過。
發現檔案執行成功
檢視源**
<?php
// the page we wish to display
$file
=$_get
['page'];
// only allow include.php or file.phpif(
$file
!="include.php"
&&$file
!="file1.php"
&&$file
!="file2.php"
&&$file
!="file3.php"
)?>
可以看到,impossible級別的**使用了白名單過濾的方法,包含的檔名只能等於白名單中的檔案,所以避免了檔案包含漏洞的產生。 DVWA 檔案包含漏洞
檔案包含是正常現象,主配置檔案有基礎的一些配置,nginx虛擬機器,include需要包含進來 檔案包含漏洞 file inclusion,檔案包含 漏洞 危害 注意 檔案包含本身是沒有問題的,問題出在如果在執行檔案包含動作時沒有對檔案內容進行審核造成漏洞利用。1 低安全級別 1 本地檔案包含 進行...
DVWA 之 檔案包含漏洞 全等級
一 漏洞概述 file inclusion 檔案包含漏洞 是指服務端將包含的檔案設定為變數,利用url動態呼叫。若沒有對包含檔案進行有效的過濾,就會導致惡意檔案或 被呼叫執行,造成檔案包含漏洞。php檔案包含的四個函式 include 包含檔案錯誤時返回一條警告,繼續向下執行。常用於動態包含。req...
DVWA系列 CSRF 檔案包含
直接.robots.txt讀取robots.txt檔案 在linux下可訪問 etc passwd 遠端檔案包含 本漏洞需要 php 開啟 allow url fopen on allow url include on 這兩個函式,並且 magic quotes gpc off 嘗試訪問本地的乙個p...