PHP的配置選項allow_url_include為ON的話,則include/require函數可以加載遠程文件,這種漏洞被稱為"遠程文件包含漏洞(Remote File Inclusion RFI)"。
(
allow_url_fopen = On 是否允許打開遠程文件
allow_url_include = On 是否允許include/require遠程文件
)
注意:如果是包含遠程服務器上的PHP文件,那么得到的是被遠程服務器解析過的PHP,所以在寫一句話木馬的時候就不要做成.php的文件,一般包含.txt的文件
例如:我們用windows server 2003 服務器包含一個Linux上的phpinfo.php文件,那么得到的就是Linux的php配置文件,而不是Windows上的php配置文件。
使用PHP封裝協議讀取文件和寫入PHP文件
1.讀取文件
先看看讀取文件,如輸入page參數值為:php://filter/read=convert.base64-encode/resource=../../../../../var/www/dvwa/hackable/uploads/1.txt
格式為上
2.寫入文件
前提條件是allow_url_include為on,則構造如下URL:192.168.220.128/dvwa/vulnerabilities/fi/?page=php://input
然后再POST需要輸入的內容即可,這里通過Firefox的HackBar來POST數據