第18课:本地文件包含漏洞

第18课:本地文件包含漏洞

本地文件包含漏洞通常会和目录遍历漏洞一起出现,程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。

所以出现了这个漏洞,我们用 DVWA 的漏洞环境进行演练。

enter image description here

我们可以从参数里看出

http://192.168.0.9/dvwa/vulnerabilities/fi/?page=include.php

PHP 的 page 函数是在读取的 inclued.php 文件,那么我们试试读取 PHP 配置文件。

抛出了网站的真实路径,那么继续去包含这个文件试试。

enter image description here

尝试读取 file:///etc/passwd 的文件,可以看到成功读取。

enter image description here

另外,../../../ 的方式也可以进行读取,目的的跳过上一级,当 ../../ 足够多的时候,就能直接到根目录进行读取文件。

文件包含漏洞的一般特征如下:

?page=a.php

?home=a.html

?file=content

PHP文件包含的几个函数:

include():只有代码执行到该函数时才会包含文件进来,发生错误时只给出一个警告并继续向下执行。

include_once():和 include() 功能相同,区别在于当重复调用同一文件时,程序只调用一次。

require():只要程序执行就包含文件进来,发生错误时会输出错误结果并终止运行。

require_once():和 require() 功能相同,区别在于当重复调用同一文件时,程序只调用一次。

低安全级别的源代码如下:

<?php 

    $file = $_GET['page']; //The page we wish to display  

?>
上一篇
下一篇
内容互动
写评论
加载更多
评论文章