文件包含漏洞
文件包含漏洞介绍
后端人员在工作时为了方便常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程就叫做包含。有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
以PHP为例,常用的文件包含函数有以下四种:
require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
require_once()与require()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
文件包含漏洞个人体会
文件包含漏洞是PHP代码中有文件包含函数,通过此函数我们可以将文件名作为变量通过GET或POST参数上传至后台。然后PHP代码打开此文件。
- 对于这个包含的文件是有利于我们获取后台更大信息的恶意文件,比如它里面有一句话木马,或者是一些用户数据信息等
- 那么这个恶意文件在哪?恶意文件可以是后台就存在的,也可以是我们自己上传的(这个就涉及到了文件上传漏洞)