ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DVWA File Inclusion(文件包含)

2020-04-03 21:03:25  阅读:249  来源: 互联网

标签:文件 File 包含 Inclusion DVWA 漏洞 file php page


File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。
文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

 

 

LOW

源码

1 2 3 4 5 6 <?php   // The page we wish to display $file $_GET'page' ];   ?>  

可以看到,服务器对page参数没有进行任何的过滤和检查。

服务器期望用户的操作是点击下面的三个链接,服务器会包含相应的文件,并将结果返回。需要特别说明的是,服务器包含文件时,不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容确为php,则会正常执行并返回结果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行。

漏洞利用

 

 我们修改?page= 即可打开我们想要的目标文件

绝对路径
我们在桌面建立了1.txt文档内容为Hello  World,

 

 相对路径

 

 

Medium

源码

1 2 3 4 5 6 7 8 9 10 <?php   // The page we wish to display $file $_GET'page' ];   // Input validation $file str_replacearray"http://""https://" ), ""$file ); $file str_replacearray"../""..\"" ), ""$file );   ?>

可以看到,Medium级别的代码增加了str_replace函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” …/”、”…\”替换为空字符,即删除。

我们可以发现,采用绝对路径依然不会受到限制。或者利用双写绕过即可。

漏洞利用

High

源码

1 2 3 4 5 6 7 8 9 10 11 12 13 <?php   // The page we wish to display $file $_GET'page' ];   // Input validation if( !fnmatch"file*"$file ) && $file != "include.php" ) {     // This isn't the page we want!     echo "ERROR: File not found!";     exit; }   ?>

 可以看到,High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。 

漏洞利用

因为规定只能包含file开头的文件,这里我们依然可以利用file协议绕过防护策略。

 

 

Impossible

源码

1 2 3 4 5 6 7 8 9 10 11 12 13 <?php   // The page we wish to display $file $_GET'page' ];   // Only allow include.php or file{1..3}.php if$file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {     // This isn't the page we want!     echo "ERROR: File not found!";     exit; }   ?>

 可以看到,Impossible级别的代码使用了白名单机制进行防护,简单粗暴,page参数必须为“include.php”、“file1.php”、“file2.php”、“file3.php”之一,彻底杜绝了文件包含漏洞。

标签:文件,File,包含,Inclusion,DVWA,漏洞,file,php,page
来源: https://www.cnblogs.com/123456ZJJ/p/12628928.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有