文件包含漏洞
简介
文件包含
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。
漏洞的形成原因
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用
但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。
文件包含漏洞
大多数Web语言都可以使用文件包含操作,其中PHP语言提供的文件包含功能强大而灵活,所以包含漏洞经常出现在PHP文件中。其他语言页可能出现包含漏洞
PHP包含
PHP提供了四个文件包含的函数
- require():可以包含文件,如果包含错了,直接报错并退出程序的执行
- include():在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行
- require_once():与require类似,区别在于当重复调用同一文件时,程序只调用一次
- include_once():与include类似,区别在于当重复调用同一文件时,程序只调用一次
文件包含漏洞分类
本地文件包含
远程文件包含
文件包含漏洞的危害
-
读取敏感文件
-
获取Webshell
-
配合文件上传漏洞
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/272305.html