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


总结

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

相关推荐
游戏开发爱好者82 小时前
iOS重构期调试实战:架构升级中的性能与数据保障策略
websocket·网络协议·tcp/ip·http·网络安全·https·udp
运维开发王义杰3 小时前
金融安全生命线:用AWS EventBridge和CloudTrail构建主动式入侵检测系统
安全·金融·aws
安全系统学习5 小时前
系统安全之大模型案例分析
前端·安全·web安全·网络安全·xss
加密狗复制模拟6 小时前
坚石ET ARM加密狗复制模拟介绍
安全·软件工程·个人开发
galaxylove7 小时前
Gartner发布塑造安全运营未来的关键 AI 自动化趋势
人工智能·安全·自动化
scuter_yu8 小时前
主流零信任安全产品深度介绍
运维·网络·安全
江苏思维驱动智能研究院有限公司8 小时前
Sophos 网络安全:全球领先的自适应安全解决方案提供商
网络·安全·web安全
A5rZ9 小时前
Puppeteer 相关漏洞-- Google 2025 Sourceless
网络安全
小能喵9 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
Bruce_Liuxiaowei11 小时前
常见高危端口风险分析与防护指南
网络·网络安全·端口·信息搜集