1. 漏洞原理与危害剖析
文件包含漏洞(File Inclusion Vulnerability)是Web安全领域的高危漏洞类型,允许攻击者通过参数操控包含服务器上的任意文件。根据包含机制的不同分为本地文件包含(LFI)和远程文件包含(RFI)两种形式。
1.1 漏洞形成机制
当Web应用使用动态文件包含函数(如PHP的include/require)且未对用户输入进行严格过滤时,攻击者通过修改参数路径即可实现非授权文件访问。典型漏洞代码如下:
php复制<?php
$page = $_GET['page']; // 未过滤用户输入
include($page . '.php');
?>
这段代码本意是加载page=about时包含about.php文件,但攻击者通过构造page=../../etc/passwd%00这样的参数即可读取系统敏感文件。
1.2 实际危害场景
- 敏感信息泄露:读取/etc/passwd、.env配置文件、数据库凭证等
- 远程代码执行:结合文件上传或日志注入实现RCE
- 权限提升:包含session文件或临时文件获取管理员权限
- 拒绝服务:包含/dev/zero等特殊设备文件导致服务崩溃
关键点:PHP版本<5.3.4时可用%00截断,新版本需配合路径穿越符(../)实现包含
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. DVWA靶场环境搭建
DVWA(Damn Vulnerable Web Application)是专为安全测试设计的PHP/MySQL应用,包含从低到高四个安全等级的文件包含漏洞场景。
2.1 快速部署方案
推荐使用Docker一键部署:
bash复制docker run --rm -it -p 80:80 vulnerables/web-dvwa
访问http://localhost后完成以下配置:
- 点击"Create/Reset Database"初始化数据库
- 使用默认账号admin/password登录
- 在"DVWA Security"中将难度调整为"Low"
2.2 关键目录结构
code复制/var/www/html/vulnerabilities/fi/ # 文件包含漏洞模块
- in
