文件包含是什么?
程序员通常将可重用函数写成单独的文件,当需要使用某个函数时,可以直接调用该文件。不需要再写了,这个文件调用的过程通常称为文件包含。
例子:包括conn.php
文件函数通常包含在PHP中。
包括()
当使用该函数包含文件时,只有当include()函数执行代码时,才会包含文件,当出现错误时会发出警告,执行将继续。
include_once()
功能和Include()一样,不同之处在于当重复调用相同的文件时,程序只调用一次。
要求()
require()和include()的区别在于,如果在执行require()时出现错误,函数会输出错误信息,并终止脚本。
require_once()
功能与require()相同,不同的是,当重复调用相同文件时,程序只调用一次。
区别。
包含:包含的文件不存在,程序将继续执行。
要求:不存在文件,程序停止执行。
(如果有语法错误,两者将无法继续执行。如未找到此文件,include将继续执行,请求,停止执行)
文件包含漏洞原理。
文件中存在漏洞的原因是用户在导入文件时可以控制引用的文件名,因为导入的文件名没有得到合理的验证或绕过验证。
普通漏洞代码
if(isset($_GET[page]){
包含$_GET[page];
}else{
包含home.PHP;
}}}
一个。
二、二。
3。
4。
5。
这个文件包含漏洞的危害。
匹配文件上传漏洞。
您可以执行任何脚本代码。
网站源文件和配置文件泄露。
远程包含GetShell。
控制整个网站甚至服务器。
文件包含漏洞分类。
当包含的文件位于服务器本地时,形成的本地文件包含漏洞。
本地文件包含的原因与远程文件包含的漏洞相同。如果php.ini中的配置选项是allow_url_fopen和allow_url_include为on,则包含的文件可能是第三方服务器中的文件,从而形成远程文件中的漏洞。
本地文件包括利用率。
上载图片马,包括图片马GetShell。
阅读网站源代码和配置文件。
GetShell有日志文件。