本地文件包含
随便选一个选项,可以看到url提交的参数存在文件名
随便输入值,还会爆出当前路径
源码
$html='';
if(isset($_GET['submit']) && $_GET['filename']!=null){
$filename=$_GET['filename'];
include "include/$filename";//变量传进来直接包含,没做任何的安全限制
// //安全的写法,使用白名单,严格指定包含的文件名
// if($filename=='file1.php' || $filename=='file2.php' || $filename=='file3.php' || $filename=='file4.php' || $filename=='file5.php'){
// include "include/$filename";
// }
}
这里看到包含了include目录下的文件,但我们可以用…构造路径,使其包含我们想要查看的文件
包含上一级目录的1.txt文件
远程文件包含
源码
//远程文件包含漏洞,需要php.ini的配置文件符合相关的配置
$html='';
if(isset($_GET['submit']) && $_GET['filename']!=null){
$filename=$_GET['filename'];
include "$filename";//变量传进来直接包含,没做任何的安全限制
}
随便在百度找了张图片,复制图片地址放到这里来,成功显示了一串乱码