文件包含可以利用的方式
(1) 直接進行文件的遍歷讀取;(讀取敏感信息)
在獲悉中間件 IIS、apache與第三方集成包等程序默認安裝路徑的情況,可以直接利用文件包含結合目錄遍歷進行“配置文件的讀取”
include.php?file=../../../etc/pass
include.php?file=../../../xampp/htdocs/config.php
(2)解析符合php規范的任何文件;(本地包含配合文件上傳)
可以利用文件包含函數可以解析任何符合PHP規范的文件的特性,結合文件上傳繞過WAF,獲取webshell。
利用過程:
1)上傳shell.txt /shell.jpg /shell.rar /shell.xxx (需要確認上傳后,上傳文件的絕對路徑)
2) 使用文件包含漏洞,直接解析上傳的非php后綴的文件,獲取webshell。
(3)使用PHP封裝協議(讀取php文件源碼)
PHP內置有很多類似於URL風格的封裝協議:
file:// --- 訪問本地文件系統;
http:// --- 訪問HTTP(s)網址;
ftp:// --- 訪問FTP(s)URLs ;
php:// --- 訪問輸入/輸出流(I/0 stream)
eg: http://www.test.com/index.php?page=php://filter/read=convert.base64-encode/resource=config.php
訪問URL,得到Base64加密后的字符串 --- 》 加密的代碼,進過解密后可以得到源文件內容。