【网络安全】-文件包含漏洞-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来检测和阻止针对文件包含漏洞的攻击尝试。


总结

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

相关推荐
向哆哆2 分钟前
CANN生态安全保障:cann-security-module技术解读
人工智能·安全·cann
wuli_滔滔44 分钟前
CANN安全机制源码探秘 仓库中的权限校验与数据加密实现
安全·cann
liann1191 小时前
3.1_网络——基础
网络·安全·web安全·http·网络安全
独行soc2 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
小羊不会打字2 小时前
CANN 生态中的模型安全加固:`secure-model-deploy` 项目实践指南
安全·neo4j
独行soc2 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
ESBK20253 小时前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
旺仔Sec3 小时前
一文带你看懂免费开源 WAF 天花板!雷池 (SafeLine) 部署与实战全解析
web安全·网络安全·开源·waf
七牛云行业应用4 小时前
Moltbook一夜崩盘:150万密钥泄露背后的架构“死穴”与重构实战
网络安全·postgresql·架构·高并发·七牛云
浩浩测试一下4 小时前
内网---> WriteOwner权限滥用
网络·汇编·windows·安全·microsoft·系统安全