伺服器執行php檔案時,可以通過檔案包含函式載入另乙個檔案中的php**,並且當php來執行,這會為開發者節省大量的時間。這意味著您可以建立供所有網頁引用的標準頁首或選單檔案。當頁首需要更新時,您只更新乙個包含檔案就可以了,或者當您向**新增一張新頁面時,僅僅需要修改一下選單檔案(而不是更新所有網頁中的鏈結)
函式區別
require()
在包含的過程中如果出現錯誤,會直接報錯並退出程式的執行
include()
在包含的過程中如果出現錯誤,會丟擲乙個警告,程式繼續正常執行
require_once()
和require函式相同,但只包含一次
include_once()
和include函式相同,但只包含一次
檔案包含的函式在使用時沒有對獲取的引數進行嚴格過濾和審查,導致包含的檔案路徑使用者可控,包含執行了惡意指令碼**,從而超出我們期望執行的範圍,比如下面**:
上面的**將我們前端獲取的路徑沒有做任何過濾直接進行了執行,如果使用者輸入的是乙個惡意指令碼的路徑位址,就有可能執行惡意指令碼導致出現安全隱患。
url欄中有以下內容則可能存在檔案包含
?page=
?file=
?home=
1.利用檔案包含可以讀取目標伺服器上其他檔案
2.利用input寫入檔案,條件allow_url_include = on
3.結合檔案上傳可以包含我們上傳的getshell指令碼,達到執行指令碼的目的
4.利用日誌包含寫入一句話等
5.包含session檔案檢視使用者名稱密碼,也可以在phpmyadmin登入框插入一句話,如果寫入session日誌檔案,就可以通過包含sessio檔案getshell
5.1.1繞過特殊字元過濾
5.1.2可以採用大小寫和複寫來進行繞過
5.1.3編碼繞過,對要包含的url進行編碼
5.1.4%00截斷,條件:magic_quotes_gpc = off php版本<5.3.4
5.1.5使用長位元組截斷,
在windows下目錄最大長度為256位元組,linux下為4096位元組,後面超過的部分會被忽略。因此可以使用足夠長的目錄進行訪問,前面使用./././或////等內容進行填充,超過256位元組或者4096位元組後再在後面新增想要包含的內容,這樣超過的部分伺服器就不會再進行檢測,但是執行的時候還是會對後面新增的內容進行執行
5.2.1?號繞過,在要包含的檔案末尾加乙個問號
5.2.2#號繞過,在要包含的檔案末尾加乙個#號**義為:%23)
1.嚴格過濾和限制包含中的引數,取消那些不可控的引數。
2.開啟open_basedir()函式,將其設定為指定目錄,只允許制定目錄可以訪問。
3.如果不需要檔案包含,則關閉allow_url_include()函式,防止遠端檔案包含
4.如果需要使用檔案包含,盡量使用白名單的方法對要包含的檔案進行限制,不要使用黑名單進行限制,這樣可以做到既使用了檔案包含,又可以防止檔案包含漏洞
1.敏感資訊洩露(配置檔案、原始碼、資料庫配置檔案、使用者名稱密碼檔案等等)
2.伺服器被執行惡意指令碼,失去控制
路徑描述
c:\boot.ini
檢視系統版本
c:\windows\system32\inetsrv\metabase.xml
iis 配置檔案
c:\windows\repair\sam
儲存 windows 系統初次安裝的密碼
c:\program files\mysql\my.ini
mysql 配置
c:\program files\mysql\data\mysql\user.myd
檢視mysqlroot密碼
c:\windows\php.ini
php 配置資訊
c:\windows\my.ini
mysql 配置檔案
路徑描述
/etc/passwd
檢視賬戶資訊
/etc/shadow
檢視密碼檔案
apache2 預設配置檔案
虛擬**設定
php 相關配置
檢視apache配置檔案
/etc/my.conf
檢視mysql配置檔案
路徑描述
apache在linux中日誌預設路徑
apache在win2003中日誌預設路徑
d:\xampp\apache\logs\error.log
c:\windows\system32\logfiles
iis6.0在win2003中預設日誌檔案
漏洞之檔案包含漏洞
在專案中為了更好地使用 的重用性,引入了檔案包含函式,可以通過檔案包含函式將檔案包含進來,直接使用包含檔案的 完成類似python中的import功能。在包含檔案時候,為了靈活包含檔案,將被包含檔案設定為變數,通過動態變數來引入需要包含的檔案時,使用者可以對變數的值可控而伺服器端未對變數值進行合理地...
web滲透 檔案包含漏洞利用
1 讀取敏感檔案 利用檔案包含漏洞讀取任意檔案,讀取檔案的時候有利用條件 目標主機檔案存在 目標檔案的絕對路徑,相對路徑 具有檔案的可讀許可權 提交引數 絕對路徑 path c 路徑 嘗試相對路徑 path 路徑 2 直接包含木馬 將木馬資訊寫入附加資訊中 使用菜刀連線 3 包含木馬寫shell 我...
pikachu之檔案包含漏洞
在web後台開發中,程式設計師往往為了提高效率以及讓 看起來更加簡潔,會使用 包含 函式功能。比如把一系列功能函式都寫進fuction.php中,之後當某個檔案需要呼叫的時候就直接在檔案頭中寫上一句就可以呼叫函式 檔案包含漏洞 有時候因為 需求,會讓前端使用者選擇需要包含的檔案 或者在前端的功能中使...