為什麼資料分析都選擇視覺化資料而不是文字資料
一、檔案包含介紹
程式開發人員通常會把可重複使用的函式寫到單個檔案中,在使用某個函式的時候,直接呼叫此檔案,無需再次編寫,這種呼叫檔案的過程通常稱為包含。為了程式碼靈活,開發通常把被包含的檔案設定為變數,來進行動態呼叫,但正是由於這種靈活性,從而導致客戶端可以呼叫任意檔案,造成檔案包含漏洞。在PHP Web Application中較多。
原因:
1.Web應用實現了動態包含。
2.動態包含的檔案路徑引數,客戶端可控。
危害:檔案包含漏洞是非常嚴重的漏洞,如果存在就等於網站的防禦措施全部失效。一般的大馬、小馬過不了安全狗,但是檔案包含漏洞可以過掉安全狗。
特點:
1.無視副檔名讀取檔案。如圖片.jpg,開啟不是圖片,二是二進位制碼。
2.無條件解析PHP程式碼。如圖片.jpg中插入一句話木馬info.php。
二、PHP中四個檔案包含函式
include() 檔案包含失敗時,會產生警告,指令碼會繼續執行。
include_once() 與include()功能相同,檔案只會被包含一次。
require() 檔案包含失敗時,會產生錯誤,直接結束指令碼執行。
require_once() 與require()功能相同,檔案只會被包含一次。
本質是將任意檔案包含在上述函式的引用變數中。
三 、分類
1.本地檔案包含:通過相對路徑的方式找到檔案,然後包含。讀取和開啟本地檔案。
2.遠端檔案包含:通過Http、Ftp、Php偽協議(php://),可以載入遠端檔案。
可以通過php.ini來進行配置:
allow_url_fopen=On/Off 本地檔案包含(LFI)的開關
allow_url_include=On/Off 遠端檔案包含(RFI)的開關
四、檔案包含的利用
1.讀取敏感檔案。
[?path=路徑] 絕對路徑、相對路徑..\..\..\..\..\
2.直接包含圖片木馬。
[?path=圖片]
3.包含木馬寫shell。
4.訪問本地檔案
[?path=file://路徑]
5.傳輸php檔案
[?path=php://filter/read=convert.base64-encode/resource=檔案]
然後把得到的所有字串base64解碼即可。(獲取網站原始碼)
6.執行php命令:
通過BP抓包