Entry № 697
本地文件包含(LFI)
本地文件包含(LFI) 是什么?
本地文件包含(LFI)允许攻击者通过未过滤输入选择本地文件,使服务器对其进行包含、执行或显示的漏洞。
本地文件包含(LFI)出现于 Web 应用未经验证就包含用户提供的文件路径的场景,常见于 PHP、JSP 或经典 ASP 等脚本语言中。攻击者可读取源码、配置文件或日志,还可能通过包含含有攻击者可控内容的文件(如日志投毒、/proc 项、会话文件、含有嵌入代码的上传图片)升级为远程代码执行。LFI 与目录遍历重叠,但更专注于运行时的 include 或 require 函数。防御措施包括对模板名采用白名单、用安全路由替代动态包含、在规范化后校验路径,以及禁用对远程 URL 的包含。
● 示例
- 01
page=../../../var/log/apache2/access.log 的接口将攻击者构造的 User-Agent 当作 PHP 执行。
- 02
管理面板使用 ?lang=es,而 ?lang=../../etc/passwd 则可暴露系统用户。
● 常见问题
本地文件包含(LFI) 是什么?
允许攻击者通过未过滤输入选择本地文件,使服务器对其进行包含、执行或显示的漏洞。 它属于网络安全的 攻击与威胁 分类。
本地文件包含(LFI) 是什么意思?
允许攻击者通过未过滤输入选择本地文件,使服务器对其进行包含、执行或显示的漏洞。
如何防御 本地文件包含(LFI)?
针对 本地文件包含(LFI) 的防御通常结合技术控制与运营实践,详见上方完整定义。
本地文件包含(LFI) 还有哪些其他名称?
常见的别称包括: LFI。