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

news2024/9/26 3:23:08

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

文章目录

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

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.coloradmin.cn/o/2125947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker mysql 容器导入数据 .sql文件导入容器

docker mysql 容器导入数据 前言准备工作1、按需准备sql文件2、将文件上传服务器(宿主机)3、将sql文件复制进容器中 操作步骤1、进入容器内部2、进入数据库3、创建数据库4、切换数据库5、导入sql文件 前言 本文所涉及应用场景:远程部署环境…

某仿soul欲音社交系统存在任意文件读取漏洞

1 阅读须知 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直…

【网络协议】了解一下HTTP 与 HTTPS 的区别

介绍: HTTP是超文本传输协议。规定了客户端(通常是浏览器)和服务器之间如何传输超文本,也就是包含链接的文本。通常使用TCP【1】/IP协议来传输数据,默认端口为80。 HTTPS是超文本传输安全协议,具有CA证书。…

面试必问的7大测试分类!一文说清楚!

在日常测试工作中,我们经常会听到“单元测试,集成测试,系统测试”之类的词汇,大家都知道这是按照开发阶段进行测试活动的划分。 这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测…

linux下使用cmake和libpng来对png图像进行读写

目标 在进行图像处理操作之前,首要任务是确保能够正确地读取图像。编写纯 C 语言代码进行图像处理时,不太适宜使用 OpenCV2。因此,为了遵循标准且便于操作,我们采用 libpng 的代码库来实现对 PNG 图像的读写。之所以选择在 Linux…

CentOS系统上Node.js安装与配置最佳实践

由于nvm下载node需要翻墙速度非常慢(试过很多次都不行),所以推荐手动安装,步骤也很简单 1、官网下载 打开官网 Node.js官网下载 选择自己系统合适的版本下载,我这里下载的是Linux x64的v18.20版本 2.上传服务器 将…

【编译原理】编译器概述、编译器结构、编译器实例

编译器概述、编译器结构、编译器实例 编译器概述 1.编译器是一个程序 核心功能是把源代码翻译成目标代码 比如源代码:C/C,Java,C#,html 目标代码:X86,IA64,ARM,… 把一种源程序翻译成另外一种源程序&…

day19JS-AJAX

1. 什么是AJAX 原生生js中有两种通信,一个ajax,还有一个是fetch。 AJAX 并不是编程语言,是一种从网页访问 Web 服务器的技术。AJAX 代表异步 JavaScript 和 XML。 AJAX 使用浏览器内建的 XMLHttpRequest 对象从 web 服务器请求数据&#xff0…

RTR_Chapter_3

第三章 图形处理单元 在历史上,图形加速首先开始于三角形上的像素扫描线颜色插值,并在屏幕上显示这些颜色值。它包括访问图像数据的能力,这允许将纹理运用在表面上;添加用于插值和深度测试的硬件,这提供了内置的可见性…

Java学习Day41:骑龙救!(springMVC)

springMVC与sevlet都是对应表现层web的,但是越复杂的项目使用SpringMVC越方便 基于Java实现MVC模型的轻量级web框架 目标: 小案例: 1.导入依赖 spring-context: 提供 Spring 框架的核心功能,如依赖注入、事件发布和其他应用上…

R语言数据整理和分析(1)

跟着顶刊学习数据分析。本期参考文献《Trends in Dietary Vitamin A Intake Among US Adults by Race and Ethnicity, 2003-2018》,来源于JAMA,IF63.1。 该文研究:2003-2018年美国成年人按种族和民族划分的膳食维生素A摄入量趋势 方法学&am…

集成学习(Ensembling Learning)

0. 来源 概念比较全,可以作为目录,前置知识讲得好,其他一般。 01.内容简介_哔哩哔哩_bilibili01.内容简介是集成学习:XGBoost, lightGBM的第1集视频,该合集共计19集,视频收藏或关注UP主,及时了…

换个角度看PCIE发展史

讲点废话 按照我的习惯,在开始做一件事情之前,我倾向于介绍我做这个事情的思路和原因。因为往往误解就是从我们思考问题的方式开始的,我觉得交代清楚了我做事情的背景,那么你就可以顺着我的思路来思考,这个过程中也很…

【第29章】Spring Cloud之Sentinel规则

文章目录 前言一、规则的种类1. 流量控制规则 (FlowRule)2. 熔断降级规则 (DegradeRule)3. 系统保护规则 (SystemRule)4. 访问控制规则 (AuthorityRule)5. 热点规则 (ParamFlowRule)6.规则常量(RuleConstant) 二、查询更改规则1.查询规则(类型)2.查询规则(所有) 三、规则文件总…

Java预备知识 Day2

1.IDEA的简单使用与介绍 1.1 IDEA的项目工程介绍 Day2_0904:项目名称 E:\0_code\Day2_0904:表示当前项目所在路径 .idea:idea软件自动生成的文件夹,最好不要动 src:srcsourse→源,我们的源代码就放在这…

3.js - 着色器设置点材质(螺旋星系特效)

上图 着色器设置点材质时,在顶点着色器中,最好设置gl_PointSize,不然看不到你在页面中添加的点 main.js import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControlsimport gsap from gsapimp…

FIDAVL:基于视觉语言模型的假图像检测与归因 !

FIDAVL:基于视觉语言模型的假图像检测与归因 ! 这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】 作者提出了FIDAVL:使用视觉语言模型进行虚假图像检测。FIDAVL是一…

基于 ROS 的Terraform托管服务轻松部署Qwen-VL-Chat

介绍 Qwen-VL是阿里云研发的大规模视觉语言模型(Large Vision Language Model)。Qwen-VL可以以图像、文本、检测框作为输入,并以文本和检测框作为输出。在Qwen-VL的基础上,利用对齐机制打造出基于大语言模型的视觉AI助手Qwen-VL-…

什么是嵌入式?行业前景如何?

目录 什么是嵌入式? 主要特点 常见应用场景 1. 工业自动化 2. 交通运输 3. 智能家居 4. 消费电子 5. 医疗设备 6. 航空航天 7. 物联网(IoT) 8. 能源管理 行业前景如何? 市场需求强劲 物联网(IoT)的爆发 汽车…