首先自己搭一个环境
在centos虚拟机里边的根目录下创建一个show.php
<?php
$name = $_GET['name'];
include({"${name}"); //注意,这里要用双引号,因为里边有变量,只有双引号里边才可以识别变量
?>
然后访问虚拟机
192.168.0.107/show.php?name=/etc/passwd
访问成功,页面成功返回信息
注意 :然后试着获取phpinfo() 的信息,这时候按理来说是没有那个文件包含
<?php phpinfo(); ?>
接下来没办法了么?! 真的没办法了么?
构造UserAgent 修改为<?php phpinfo();?> 然后包含以下访问成功的日志文件
这样是不是就可以成功获取 phpinfo();的信息了呢? 当然是可以的了
就这样修改头部信息 ,然后访问目标网站 ,这时候目标网站的日志里边应该就有 phpinfo()的信息了
然后我们去虚拟机里边验证下
现在看来确实是如此的,然后修改包含的路径 ,Apache 的访问日志在 /var/log/httpd/access_log
让我们来访问下
********************************到这里位置都是截图,内容都是空白的***********************************
这是怎么回事,哪里出现问题了么?! 不应该啊 ,确实不应该啊 ,尝试在根目录下创建一个1.php
然后访问一下,成功,说明这样写的路径没有问题,但是访问不了是真么回事呢?
别人提醒 ,是不是哪个文件夹没有执行权限啊, 于是 ls -l 逐个查看文件夹权限
发现如下
结果看来 ,软件是没有权限进入文件夹的
于是增加执行权限给文件夹 chmod o+x httpd
然后再次访问
成功获取 phpinfo() 的信息
危害:
如果文件包含的是你连接sql数据库的配置文件呢?
账号密码是不是都暴露了呢?
可怕不可怕?