文件包含漏洞概述
在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用"包含"函数功能。比如把一系列功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用函数代码
但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了“包含”功能) ,
又由于开发人员没有对要包含的这个文件进行安全考虑,
导致攻击者可以通过修改包含文件的位置来让后台执行任意文件(代码).
本地文件包含漏洞:
仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些 固定的系统配置文件,从而读取系统敏感信息。
本地文件包含漏洞演示
1.首先打开file lnclusion(local)目标网站,可以看到下拉框,选了kobe btyant之后,页面是下图这样
可见其中包含了一个文件file1.php,通过URL参数从前端传到后端的,而这些文件为后端自己的文件,
说明是用户可以控制(修改)这些文件,并且没有做严格的过滤,存在文件包含漏洞
2.把文件改为后台固定的配置文件
所以如果是 Linux 环境,我们可以 “…/” 的方式进行目录跳转,读取其他目录下的文件
../../../../../../../../etc/passwd