DVWA:全等级文件包含

纵饮孤独 提交于 2020-03-10 17:04:03

  文件包含(漏洞),英文名File Inclusion,意为当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(例如include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。

  文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。我们的目的,就是获取到网站的路径,从而可以访问文件。

Low

  我们调整难度至Low,然后打开File Inclusion关卡:

 

 

   我们查看源码得知(具体路径见下图),服务器对page参数没有任何的过滤和检查。服务器希望用户点击图中的三个链接,服务器会包含相应文件,并将结果返回。需要说明的是。不管文件后缀是否是php,都会当做php文件执行,如果文件内容确认为php,则正常执行并返回结果,如果不是,则返回打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行:

 

 

 

 

 

   我们试一下点击当中的File:

 

 

   事实上恶意的攻击者是不会乖乖点击这些链接的,因此page参数是不可控的。我们用什么方法来进行呢?可以使用url构造路径。

构造绝对路径的url:

  我们这里使用Harkbar来构造,这里我们直接通过将include.php改为../../../../../etc/passwd(../实现向上一级目录跳转,多个时就会返回到根目录,其数量应多一点。),然后发现报错了,而且把路径暴露得一清二楚:

 

 

   通过绝对路径也可以直接访问得到:

  http://192.168.1.1/DVWA-master/vulnerabilities/fi/?page=/etc/passwd

  通过文件系统访问方式file://也可以实现访问,注意一点的是后面必须是绝对路径:

  http://192.168.1.1/DVWA-master/vulnerabilities/fi/?page=file:///etc/passwd

 

 

   获取到绝对路径之后。我们可以通过进入每一个文件夹得到你要的内容,这里我们在这个路径下访问这个服务器任意一个文件,这里我创建了一个文本文档,里面随便输入了一点内容:

 

 

   然后访问:

  http://192.168.1.1/DVWA-master/vulnerabilities/fi/?page=C:\phpStudy\WWW\111.txt

  

 

 

   在超级不显眼的地方,文件里面的东西已经输出出来了,我们访问成功,说明这个路径可用。

 

Medium

  照旧调整为中等难度,然后我们打开代码进行分析(事实上很少,一眼就了解了):

 

 

   然后看到比起上一个难度,它新增加了两条语句,用str_replace函数,对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。

  这样的替换我前面的Sqli-labs里已经提到过,显而易见我们可以通过双写绕过WAF。同时,因为替换的只是“../”、“..\”,所以对采用绝对路径的方式包含文件是不会受到任何限制的,采用绝对路径的办法不受影响。所以我们的语句也与上面基本相同,只是在被替换的地方双写一下即可(红色部分会被替换为空字符,最后前后的http会被保留下来):

  http://192.168.1.1/DVWA-master/vulnerabilities/fi/?page=hthttp://tp://192.168.1.1

 

 

 

High

  查看代码来看看这一关进行了什么样的防御:

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

  我们可以利用file协议绕过防护策略。file协议其实我们并不陌生,当我们用浏览器打开一个本地文件时,用的就是file协议。

file协议绕过防护策略

  我们来构造一个url的语句,访问php本地配置文件由于file协议只支持本地文件读取,不支持远程文件执行,就没办法执行远程文件(当然可以利用文件上传漏洞配合执行文件包含) 下次博客会更新文件上传漏洞.结合进去文件包含执行。不再赘述

http://192.168.1.1/DVWA-master/vulnerabilities/fi/?page=file:///C:\phpStudy\WWW\DVWA-master\php.ini

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!