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数据