傳統文件上傳:上傳至服務器本身硬盤。
云存儲:借助云存儲oss對象存儲(只能被訪問,不可解析)
Oss云存儲
Access key與Access ID:
有了這兩個東西之后就可以操作云存儲,可以向里面發數據了。
這玩意兒泄露的話,就可以用oss瀏覽器登錄,獲取文件。
?
?
?
文件包含
如果我訪問。Upload.HTML會出現如下頁面↓
?如果我訪問Upload.PHP會顯示如下頁面↓
如果我想把功能全寫在一起,就可以來一個文件包含,在PHP中寫include Upload.HTML
然后他就會把HTML執行。
?相當于只訪問一個文件就可以實行兩個功能。
(包含過來可以調用運行,方便開發,一個文件,當幾個文件使)
比如沒有文件包含的話,我要調用文件的話那就必須全部復制粘貼過來,現在直接一行代碼解決。
?*安全問題:這東西包含誰執行誰,包含的文件受我們的控制,所以有漏洞,不可太自由。
*什么函數造成了什么漏洞,以及用戶可以控制的值,架構的特性,函數的特性。
?
?
?
?
這段是PHP代碼(文件為?filemanage.php?),用于處理文件刪除和文件下載操作:
?
- 當操作標識 ?$action? 為 ?'del'? 時:執行 ?unlink($file)?,作用是刪除變量 ?$file? 所指定的文件。
- 當操作標識 ?$action? 為 ?'down'? 時:通過設置 HTTP 響應頭(指定內容為二進制流、強制瀏覽器以“附件”形式下載、告知文件大小),再用 ?readfile($file)? 讀取并輸出文件內容,最終實現文件下載功能(不過代碼里 ?filename=""? 是空的,實際使用時需要填入具體文件名,比如原文件的名字,這樣下載時才會顯示正確的文件名)。
*所以是不是我下載的時候把數據包改成別的路徑,它就會下載別的文件(如果沒有黑名單白名單的話)
這些東西如果控制不當的話,就容易跨目錄下載跨目錄翻閱,跨目錄刪除,跨目錄編輯。等等。
任意文件漏洞。
System PHP中調用系統文件。
?
?因為這是執行命令行的命令,命令行他執行的是del? ?$file中傳的東西,Del sb.php ⅡPing 127點0.0.1,他就會同時執行兩個命令。
?還有這個檢測檢測這個是不是目錄,如果沒有做過濾的,
如果代碼中沒有 ?eval?、?include?/?require? 等執行PHP代碼的邏輯,僅通過 ?$path? 傳遞惡意內容,是無法直接注入PHP命令的。
?
原因在于:當前代碼的核心是文件管理操作(判斷文件/目錄、提取文件名、遍歷目錄等),沒有“執行動態PHP代碼”的邏輯(比如用 ?eval? 解析字符串為代碼,或用 ?include? 包含惡意文件)。
?
只有當代碼中存在 ?eval($_GET['path'])?、?include($path)? 這類“執行/包含動態代碼”的邏輯,且 ?$path? 未做安全過濾時,才可能被注入惡意PHP命令。而從當前代碼看,沒有這類風險邏輯。
?圖片中包含的實體信息是網站“DNSLog.cn”,它是一個常用于網絡安全領域的平臺,主要功能包括提供DNS查詢記錄查看等,可輔助進行漏洞檢測等相關的測試與監控工作。
?
?
?