远程文件包漏洞,不能包含PHP的原因详解
简介:进行远程包含时,大多数包含txt、jpg等文件,再进行菜刀连接,但是如果远程包含的是php文件,则菜刀无法成功连接。
开门见山,给我带来启发的两句话
注意:如果是包含远程服务器上的PHP文件,那么得到的是被远程服务器解析过的PHP,所以在写一句话木马的时候就不要做成.php的文件,一般包含.txt的文件
例如:我们用windows server 2003 服务器包含一个Linux上的phpinfo.php文件,那么得到的就是Linux的php配置文件,而不是Windows上的php配置文件。
(参考:https://www.jianshu.com/p/be68cf9be911)
下面是一些推断验证:
验证:现有两个靶机环境,都上传一个php文件查看phpinfo()信息,进行对比
靶机1:
靶机2:
可以发现2个靶机的PHP版本信息是不一样的
现在通过靶机1远程包含靶机2的PHP文件
可以发现该PHP版本信息,为包含的远程文件上的服务器的PHP版本信息,即靶机2的PHP版本信息
证实了包含远程PHP文件时,会在服务器上进行PHP解析后,再传给包含该远程PHP文件的服务器上
验证下这个POST的值到底会不会传过来
由于post提交值不太方便,这里我们改用GET方式
首先上传一个test.php文件,
文件内容:
<?php
echo "123";
$name = $_GET[