任意文件包含(搭的环境)

首先自己搭一个环境

在centos虚拟机里边的根目录下创建一个show.php

$name = $_GET['name'];

include({"${name}");              //注意,这里要用双引号,因为里边有变量,只有双引号里边才可以识别变量

?>

然后访问虚拟机

192.168.0.107/show.php?name=/etc/passwd

访问成功,页面成功返回信息

注意 :然后试着获取phpinfo() 的信息,这时候按理来说是没有那个文件包含

接下来没办法了么?! 真的没办法了么?

构造UserAgent 修改为 然后包含以下访问成功的日志文件

这样是不是就可以成功获取 phpinfo();的信息了呢? 当然是可以的了

就这样修改头部信息 ,然后访问目标网站 ,这时候目标网站的日志里边应该就有 phpinfo()的信息了

然后我们去虚拟机里边验证下

现在看来确实是如此的,然后修改包含的路径 ,Apache 的访问日志在 /var/log/httpd/access_log

让我们来访问下

********************************到这里位置都是截图,内容都是空白的***********************************

这是怎么回事,哪里出现问题了么?! 不应该啊 ,确实不应该啊 ,尝试在根目录下创建一个1.php

然后访问一下,成功,说明这样写的路径没有问题,但是访问不了是真么回事呢?

别人提醒 ,是不是哪个文件夹没有执行权限啊, 于是 ls -l 逐个查看文件夹权限

发现如下


结果看来 ,软件是没有权限进入文件夹的

于是增加执行权限给文件夹 chmod o+x httpd 

然后再次访问

成功获取 phpinfo() 的信息


危害:

如果文件包含的是你连接sql数据库的配置文件呢?

账号密码是不是都暴露了呢?

可怕不可怕?

你可能感兴趣的:(测试实验)