File Inclusion

 File Inclusion

        文件包含(File Inclusion),通常出现在基于PHP的网站中,可以影响Web应用程序。通常发生在应用程序未正确验证用户输入,而直接将用户提供的输入用于包含文件的操作。

        简单来说,这种漏洞允许攻击者通过一些不当的输入方式(例如用户输入、URL参数等)来加载和执行文件,导致恶意代码的执行或者敏感信息的泄露。

       

Low

        看一下源码,(通过$_GET['page']获取用户从URL中传递的数据)。我们可以通过URL参数直接控制$file的值,

File Inclusion_第1张图片

         可以看到我i们这里输入DVWA目录下的一个文本的路径,其内容会被显示出来

File Inclusion_第2张图片

        成功、

Medium

        还是看一下源码,进行了字符串替换,框内的两行代码

str_replace(array("http://", "https://"), "", $file):将输入中的 "http://" 和 "https://" 替换为空字符串,去除URL协议部分。

对于这个,我们可以采用双写或者大小写绕过。或者 构造类似于 htthttp://p 越过替换过滤

str_replace(array("../", "..\\"), "", $file):将输入中的 "../" 和 "..\" 替换为空字符串,去除可能的相对路径导航部分,防止用户尝试访问上层目录

排除相对路径之后,我们可以采用绝对路径绕过。

File Inclusion_第3张图片

 这里构造tthttp://p  + 使用绝对路径 测试成功

File Inclusion_第4张图片

High 

        使用fnmatch函数进行文件名模式匹配,检查用户输入的文件名是否以 "file" 开头,且文件名不等于 "include.php"。

        这里,我们使用file协议进行读文件  file 协议是一种用于在本地文件系统中定位文件的 URL 协议。它允许通过URL来引用本地文件,类似于HTTP或FTP协议用于引用远程资源

        file协议的基本格式如下:file://localhost/path/to/file

         

File Inclusion_第5张图片

        测试,可行

File Inclusion_第6张图片

你可能感兴趣的:(DVWA学习篇,php)