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

四、文件包含漏洞

一、文件包含漏洞

解释:文件包含漏洞是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行;其还能够使得服务器上的源代码被读取,在PHP里面我们把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含

1.PHP常用文件包含函数

  1. require():找不到被包含的文件会产生致命错误,并停止脚本运行
  2. include():找不到被包含的文件只会产生警告,脚本继续执行
  3. require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
  4. include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含

2.文件包含之任意文件转为PHP执行

解释:在php里面include函数,在执行的时候,如果可以将被包含文件里面的内容当做php代码执行,也就是说,比如include包含了一个png文件,但是里面写的都是php代码,这个php就会被执行,这样很容易造成一句话木马的上传

例如:
在这里插入图片描述
解释:从上图文件可知道,page对应include加载的文件,a文件内容如下,其并非php后缀文件但是却被当作php执行了

<?php
echo 'odwadawdwak';
?>

3.远程文件包含

解释:当php配置项allow_url_includeallow_url_fopen状态为ON的话,则include/require函数是可以加载远程文件,远程文件->其它服务器上的php文件,这种设置如果代码存在文件包含漏洞可能会造成致命的威胁

4.伪协议

解释:PHP内置了很多伪协议,其可能会造成任意文件读取,执行任意命令等问题

文章在此:二、PHP伪协议

5.目录穿越

解释:因为include对内容的解析问题,存在该漏洞,包括在window上面有类似但不同的情况(如下图),下面例子cd到一个不存在的目录,但是都没有报错,因为cd去解析后面的../了,其实就相当于,先cd到一个不存在的目录,然后../又切换回上级一级目录了,这种情况可能就会导致攻击能够绕过一些正则进行目录穿越来暴力访问文件
在这里插入图片描述

<?php
include 'dwadawdaw?/../a.php';
?>
上面的例子相当于先cd 进入了dwadawdaw?这个目录发现其不存在,然后执行../a.php,翻译过来相当于include 'a.php';include 'dwadawdaw?/../../a.php'; 等价于include '../a.php';

相关文章:

四、文件包含漏洞

一、文件包含漏洞 解释&#xff1a;文件包含漏洞是一种注入型漏洞&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务端执行&#xff1b;其还能够使得服务器上的源代码被读取&#xff0c;在PHP里面我们把可重复使用的函数写入到单个文件中&#x…...

Java中基于SSM框架的数据保存方法与日期处理

​ 一、详解 在SSM框架中&#xff0c;保存数据通常涉及到服务层和数据访问层。服务层处理业务逻辑&#xff0c;而数据访问层负责与数据库进行交互。 二、代码 Override public void save(Student student) { Date date new Date(); SimpleDateFormat format new Sim…...

编译器核心技术概览

编译技术是一门庞大的学科&#xff0c;我们无法对其做完善的讲解。但不同用途的编译器或编译技术的难度可能相差很大&#xff0c;对知识的掌握要求也会相差很多。如果你要实现诸如 C、JavaScript 这类通用用途语言&#xff08;general purpose language&#xff09;&#xff0c…...

本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)

按照固有思维方式&#xff0c;深度学习的训练环节应该在云端&#xff0c;毕竟本地硬件条件有限。但事实上&#xff0c;在语音识别和自然语言处理层面&#xff0c;即使相对较少的数据量也可以训练出高性能的模型&#xff0c;对于预算有限的同学们来说&#xff0c;也没必要花冤枉…...

守护进程的理解

什么是守护进程 daemon False # 是否以守护进程方式运行&#xff0c;True守护&#xff0c;False 非守护 在这段代码中&#xff0c;daemon 变量的值决定了进程是否以守护进程方式运行。如果 daemon 的值为 True&#xff0c;则表示进程将以守护进程方式运行&#xff0c;否则为…...

VMware虚拟机的安装教程

安装VMware虚拟机的步骤如下&#xff1a; 首先&#xff0c;你需要从VMware官方网站&#xff08;https://www.vmware.com&#xff09;下载VMware虚拟机软件安装程序。 一旦下载完成&#xff0c;双击运行安装程序。 在安装程序启动后&#xff0c;你将看到一个欢迎界面。点击"…...

Linux环境搭建(tomcat,jdk,mysql下载)

是否具备环境&#xff08;前端node&#xff0c;后端环境jdk&#xff09;安装jdk,配置环境变量 JDK下载 - 编程宝库 (codebaoku.com) 进入opt目录 把下好的安装包拖到我们的工具中 把解压包解压 解压完成&#xff0c;可以删除解压包 复制解压文件的目录&#xff0c;配置环境变量…...

80万条中文ChatGPT多轮对话数据集

80万条中文ChatGPT多轮对话数据集 代码代码地址代码解析 代码 import json import numpy as np from tqdm import tqdm import redef find_chinese_text(text):pattern re.compile(r[^\u4e00-\u9fff])return pattern.sub(, text)with open("E:/data_sets/multiturn_chat…...

阿里云ECS服务器如何搭建并连接FTP,完整步骤

怎么用终端连接服务器就不多说了&#xff0c;直接开始搭建FTP。 我是用root账号执行的命令&#xff0c;如果不使用root账号&#xff0c;注意在命令前面加sudo。 一、安装FTP 我这里安装的是vsftpd。 1、检查是否已安装vsftpd&#xff1a; vsftpd -v如果出现了版本信息&…...

uni-app 使用uni.getLocation获取经纬度配合腾讯地图api获取当前地址

前言 最近在开发中需要根据经纬度获取当前位置信息&#xff0c;传递给后端&#xff0c;用来回显显示当前位置 查阅uni-app文档&#xff0c;发现uni.getLocation () 可以获取到经纬度&#xff0c;但是在小程序环境没有地址信息 思考怎么把经纬度换成地址&#xff0c;如果经纬度…...

cocos2dx ​​Animate3D (一)

3D相关的动画都是继承Grid3DAction 本质上是用GirdBase进行创建动画的小块。 Shaky3D 晃动特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 晃动的范围 // z轴是否晃动 static Shaky3D* create(float initWithDuration, const Size& …...

2023年最新PyCharm环境搭建教程(含Python下载安装)

文章目录 写在前面PythonPython简介Python生态圈Python下载安装 PyCharmPyCharm简介PyCharm下载安装PyCharm环境搭建 写在后面 写在前面 最近博主收到了好多小伙伴的吐槽称不会下载安装python&#xff0c;博主听到后非常的扎心&#xff0c;经过博主几天的熬夜加班&#xff0c;…...

3D火山图绘制教程

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 本期教程内容 **注&#xff1a;**本教程详细内容 Volcano3D绘制3D火山图 一、前言 火山图是做差异分析中最常用到的图形&#xff0c;在前面的推文中&#xff0c;我们也推出了好几期火山图的绘制教程&#xff0…...

跳跃游戏[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个非负整数数组nums&#xff0c;你最初位于数组的第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回true&#xff1b;否则&#xff0c;返…...

华为昇腾开发板共享Windows网络上网的方法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 具体参考文章&#xff1a;linux(内网&#xff09;通过window 上网。具体是两步&#xff1a;一是在windows上设置internet连接共享。二是打开Atlas 200I D…...

【工具栏】热部署不生效

目录 配置热部署&#xff1a; 解决热部署不生效&#xff1a; 首先检查&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 配置热部署&#xff1a; https://blog.csdn.net/m0_67930426/article/details/133690559 解决热部署不…...

一键去水印免费网站快速无痕处理图片、视频水印

水印问题往往是一个大麻烦。即使我们只想将这些照片保留在我们的个人相册中以供怀旧&#xff0c;水印也可能像顽固的符号一样刺激我们的眼睛。为了解决这个问题&#xff0c;我们需要不断探索创新的解决方案&#xff0c;让我们深入研究一款强大的一键去水印免费网站“水印云”。…...

分片并不意味着分布式

Sharding&#xff08;分片&#xff09;是一种将数据和负载分布到多个独立的数据库实例的技术。这种方法通过将原始数据集分割为分片来利用水平可扩展性&#xff0c;然后将这些分片分布到多个数据库实例中。 1*yg3PV8O2RO4YegyiYeiItA.png 但是&#xff0c;尽管"分布"…...

Python中的函数

一、函数参数与返回值基础知识 1、不要使用可变类型&#xff08;list等&#xff09;作为参数默认值&#xff0c;用None来代替。 参数默认值只会在函数定义阶段被创建一次&#xff0c;之后无论创建多少次&#xff0c;函数内拿到的默认值都是同一个对象&#xff0c;为规避这个问…...

推荐一款png图片打包plist工具pngPackerGUI_V2.0

png图片打包plist工具&#xff0c;手把手教你使用pngPackerGUI_V2.0 此软件是在pngpacker_V1.1软件基础之后&#xff0c;开发的界面化操作软件&#xff0c;方便不太懂命令行的小白快捷上手使用。1.下载并解压缩软件&#xff0c;得到如下目录&#xff0c;双击打开 pngPackerGUI.…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...