【网络安全】-文件包含漏洞-pikachu

文件操作漏洞包括文件上传漏洞,文件包含漏洞,文件下载漏洞。

文章目录

前言 : 什么是文件包含漏洞?

1.文件包含漏洞的分类:

   本地文件包含漏洞:

   远程文件包含漏洞:

2.两种文件包含漏洞的区别:

3.文件包含漏洞的防御措施:

总结:


前言 : 什么是文件包含漏洞?

文件包含漏洞是指程序在执行过程中,将外部文件的内容作为程序代码或数据的一部分来执行使用,从而导致hacker可以利用这个漏洞包含恶意文件,执行任意代码进而访问敏感信息。


1. 文件包含漏洞的分类:
本地文件包含漏洞:

定义:被包含的文件位于服务器本地。

可以通过构造恶意的文件路径,使应用程序加载并执行本地的敏感文件,如配置文件、日志文件或源代码文件。

举例:皮卡丘靶场->pikachu-master/vul/fileinclude/fi_local.php

步骤:

尝试提交表单:

科比:pikachu-master/vul/fileinclude/fi_local.php?filename=file1.php&submit=提交

艾伦: pikachu-master/vul/fileinclude/fi_local.php?filename=file2.php&submit=提交

凯文:pikachu-master/vul/fileinclude/fi_local.php?filename=file3.php&submit=提交

分析:

文件名是file1.php~file5.php。

fileinclude 中 include为包含函数,推出fileinclude目录可能包含了与文件包含漏洞相关的代码和示例。

filename=file1.php:这个参数指定了要包含的文件名,即当前目录或指定路径下的file1~5.php文件。

指定文件名是file1.php~file5.php,我们输入一个明显错误的文件名fileaaa.php试试:

抛出错误:本地文件路径绝对路径

D:\phpstudy_pro\WWW\pikachu-master\vul\fileinclude\fi_local.php

构造url , 指定了要包含的文件名-主机信息文件../../../../Windows/System32/drivers/etc/hosts爆出主机信息:

?filename=../../../../Windows/System32/drivers/etc/hosts

../../返回上一级目录。

例如:url:pikachu-master\vul\fileinclude\fi_local.php

输入:../ url:pikachu-master\vul\fileinclude

输入:../ url:pikachu-master\vul

输入:../../ url:pikachu-master\vul\fileinclude\fi_local.php-> url:pikachu-master\vul

远程文件包含漏洞:

被包含的文件位于远程服务器

前置条件:allow_url_include=on, magic_quotes_gpc=off

可以构造一个指向恶意文件的URL,并诱使受害服务器包含并执行该文件。

举例:

在本地中查找并打开php_ini文件:

编辑->查找->allow_url_include

步骤:

尝试提交表单:

科比: pikachu-master/vul/fileinclude/fi_remote.php?filename=include%2Ffile1.php&submit=提交

艾伦:pikachu-master/vul/fileinclude/fi_remote.php?filename=include%2Ffile2.php&submit=提交

凯文:pikachu-master /vul/fileinclude/fi_remote.php?filename=include%2Ffile3.php&submit=提交

分析:文件名还是是file1.php~file5.php。

流程与本地文件包含相同,但远程文件包含漏洞执行的代码更宽泛。

例如:.DS_Store文件

filename=http://127.0.0.1/pikachu-master/.DS_Store

filename=http://127.0.0.1/pikachu-master/test/phpinfo.txt

2.两种文件包含漏洞的区别:
  1. 本地文件包含漏洞只需要找上传点,把图片码上传到对方服务器,通过构造构造恶意的文件路径参数,就可以运行webshell。

2.远程文件包含漏洞需要构造包含恶意代码的远程文件URL,并将其作为参数传递给应用程序,从而执行任意代码,需要前置条件:allow_url_include(远程包含功能)=on, magic_quotes_gpc(魔术符合)=off

3. 文件包含漏洞的防御措施:

为了防止文件包含漏洞,可以采取以下防御措施:

严格验证和过滤用户输入:对所有从用户输入获取的文件路径或文件名进行充分的验证和过滤,确保它们符合预期的格式和范围。

使用安全的文件包含函数:尽量使用include_once()和require_once()等函数来包含文件,以防止文件被重复包含。

限制文件包含的范围:通过配置服务器或应用程序,限制被包含的文件只能在特定目录内,禁止目录跳转字符(如"../")。

使用白名单:只允许包含白名单中的文件,禁止包含未知或未授权的文件。

更新和修补:及时更新服务器软件和应用程序,以修复已知的文件包含漏洞。

使用Web应用程序防火墙(WAF):通过WAF来检测和阻止针对文件包含漏洞的攻击尝试。


总结

本地文件包含漏洞与远程文件包含漏洞在防范措施上,两者都需要对用户输入进行严格的验证和过滤,但远程文件包含漏洞还需要特别注意禁用相关配置选项和限制外部资源的访问权限。

相关推荐
johnsong7 小时前
AI前沿日报 · 2026-10-31 | 安全失守——当AI工具被下毒、当云端门户洞开
人工智能·安全
飞飞传输9 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
菩提小狗13 小时前
每日安全情报报告 · 2026-11-05
网络安全·漏洞·cve·安全情报·每日安全
QXWZ_IA14 小时前
高楼遮挡RTK失锁:三层安全网怎么搭
人工智能·安全
衡石科技15 小时前
让多轮分析沿用正确口径:衡石 Data Agent 的上下文工程
安全·chatbi·上下文工程·data agent
QZ1665609515915 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
网络·人工智能·安全·网络安全·政务
QXWZ_IA18 小时前
矿山安全监测从感知到预警的全链路算法
人工智能·安全
武天旭20 小时前
AI安全--AI大模型的数据投毒攻击解析
人工智能·深度学习·安全
迪康coolmu21 小时前
企业U盘管控落地实战:基于迪康端点安全一体化管理系统的移动存储安全实践
运维·人工智能·经验分享·笔记·安全·电脑
0xBADCODE1 天前
2026 强网杯 Web 题 cwp · 全链路复盘
前端·安全·web安全·网络安全·系统安全·ctf