一、文件包含漏洞形成原因

开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。
二、文件包含漏洞的分类

远程文件包含(RFI,Remote File Inclusion): 当 Web 应用程序下载并执行远程文件时,会导致远程文件包含,这些远程文件通常以 HTTP 或 FTP URI 的形式获取,作为Web 应用程序的用户提供的参数。
本地文件包含(LFI,Local File Inclusion):本地文件包含类似于远程文件包含,本地文件包含仅能包括本地文件,即当前服务器上的文件以供执行。
文件包含漏洞用到的函数:
require:找不到被包含的文件,报错,并且停止运行脚本。
include:找不到被包含的文件,只会报错,但会继续运行脚本。
require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次。
include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。
三、PHP包含日志文件


拦截后修改:

查看日志文件已记录此条信息

浏览器中运行此日志文件,即可执行插入的PHP代码。

文章详细介绍了文件包含漏洞的原理,包括远程文件包含(RFI)和本地文件包含(LFI),并列举了PHP中相关的函数,如require和include。通过DVWA靶场的实例,展示了不同安全等级下如何利用和防御这类漏洞,包括使用file协议和路径遍历等技巧进行攻击,并提供了Windows和Linux系统的敏感文件示例。
最低0.47元/天 解锁文章
2289

被折叠的 条评论
为什么被折叠?



