文件包含(File Inclusion): 通过函数引入本地或者远程文件,代替一些重复操作的功能。文件包含漏洞是由于对输入的文件未做检测,从而允许攻击者引入特定的文件。
危害:本地文件包含漏洞导致暴露服务器信息(应用程序源码,系统或应用的配置文件),上传的webshell被引入到可执行位置,远程文件包含漏洞导致执行远程服务器上预先设置好的恶意代码。
下面通过DVWA漏洞实验平台认识php的文件包含漏洞:
与此漏洞相关的漏洞函数:include(),include_once(),require(),require_once().
实验环境:phpstudy 2016 php-5.4.45集成环境
进入漏洞平台提示文件包含功能未开启,此漏洞涉及到一个重要配置allow_url_include为on,协议包含(即可加入链接)需要配置allow_url_fopen为on,allow_url_include此版本是默认关闭的,需要进入配置文件修改一下
下面通过改变file参数如下:
本地文件查看:(可以包含上传到本地的shell)
还可以输入链接(另外还可以加入伪协议):
查看源码,未对输入的对象做任何过滤或者过滤不严密:
如何彻底防护呢:如无必要,关闭文件包含功能 或者对于使用文件包含的函数设置白名单