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

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


总结

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


http://www.kler.cn/a/300570.html

相关文章:

  • edge浏览器恢复旧版滚动条
  • LINUX 内核设计于实现 阅读记录(2025.01.14)
  • 论文阅读:CosAE Learnable Fourier Series for Image Restoration
  • 数据库服务体系结构
  • 港湾周评|万科的多重压力
  • 【原创】大数据治理入门(2)《提升数据质量:质量评估与改进策略》入门必看 高赞实用
  • 使用Get包显示Dialog
  • 《HTML 与 CSS—— 响应式设计》
  • C++:priority_queue(优先级队列)的模拟实现
  • 18070 矩阵行交换或列交换
  • 实时音视频之医疗手术示教技术方案探究
  • DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed
  • [001-03-007].第26节:分布式锁迭代1->基于setnx命令实现分布式锁:
  • 08-图8 How Long Does It Take(C)
  • Java中的linkedList类及与ArrayList的异同
  • PoS 和 PoW 矿机系统区块链公链开发成本分析
  • 朴素贝叶斯 (Naive Bayes)
  • vue + Element UI table动态合并单元格
  • 前端CSS面试常见题
  • c#中的版本管理和描述
  • 函数的定义
  • Unity3d俯视视角下,通过点击屏幕获取世界坐标是如何实现的
  • windows通过wsl2安装linux系统之Ubuntu,傻瓜式安装
  • C++常用设计模式
  • 数据库视图和索引
  • 【iOS】Masnory的简单学习