文件包含 任意文件读取

news2025/5/9 18:04:08

文件处理漏洞--文件包含 - wizard骑士 - 博客园

1,什么是文件包含

        程序开发人员一般会吧重复使用的函数写道单个文件中,需要使用某个函数时直接调用此文件,无需再次编写,文件调用的过程就是文件包含,所以将包含的文件设置为变量,用来动态调用,但是这种灵活性,导致客户端可以调用一个恶意文件,造成文件包含漏洞 。

      下面的代码通过get获取file的值,并用include包含此文件。

<?php

  error_reporting(0);

  $file = $_GET["file"];

  include $file;

> 

而文件包含除了有include,还能用其他的函数

  • include

    include()在包含的过程中如果出现错误,只产生警告,并且脚本会继续

  • require

    require()在包含的过程中如果出现错误,会生成致命错误,并停止脚本

  • include_once、require_once

    如果文件已包含,则不会包含,以避免函数重复定义,变量重新赋值等问题

  • 在写法上 include('xx')   ====   include 'xx'

2,文件包含漏洞利用

 1,任意文件读取

        当文件包含的文件没有被php标签包裹时,会直接显示包含文件的内容,否子会被先解析为php代码。直接包含本地php文件,只能得到运行后的结果,如果想要得到具体内容可以利用php中的filter伪协议将文件编码成base64后输出。

php://filter/read=convert.base64-encode/resource=xxx
什么是伪协议?

        PHP 伪协议(PHP Pseudo Protocols)是 PHP 提供的一种特殊的协议机制,用于在 PHP 脚本中实现一些特殊的文件操作功能。这些伪协议并不是真正的网络协议,而是 PHP 内部定义的、用于特定用途的协议。它们通常用于处理文件路径、数据流、内存操作等。

这里用到的伪协议就是filter伪协议,后续的文件包含漏洞都与这个伪协议有关。

而这里的使用原理就是将php源码编码输出,这样php代码就不会被执行,再通过base64解码即可获得php源码。

payload中的各种组成部分

 

 2,执行php代码

这里有两种伪协议php://input和data://

两种方式都有条件,它们都需要满足一个条件 allow_url_include=on

data://还需满足另一个条件 allow_url_fopen=on

php://input可以获取POST的数据流,当与包含函数结合时,php://input流会被当做php文件执行,从而导致任意代码执行

data://同样类似于php://input,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当做php文件执行。从而导致任意代码执行

这里的input用法简单,只需用post的方法上传要执行的php代码即可。

但data比较吃操作

 

比如需要执行phpinfo函数

php://input (post内容 <?php phpinfo;?>)

data://[<MIME-type>][;charset=<encoding>][;base64],<data>

?file=data://text/plain,<?php phpinfo();?>

?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

 

还可以用zip://伪协议(zlib://和bzip2://)

zip://可以访问压缩包里的文件,当与包含函数结合时,zip://流会被当作php文件执行,从而实现任意代码执行

只需要是zip压缩包即可

条件:allow_url_fopen=off/on、allow_url_include=off/on

zip://[压缩包绝对路径]#[压缩包内文件]

?file=zip.jpg#phpinfo.txt

还有几种利用方法

 

3,做题

[SWPUCTF 2021 新生赛]include

 此题虽说没有任何过滤和保护,而且明确告诉了flag的文件名。如果没学文件包含漏洞利用可能就只有目录遍历找了,但学了文件包含漏洞我们就可以用php://input来执行代码

但是没成功,后面又尝试遍历目录看能不能找到,发现也没有

突然想起来包含php文件会被解析,所以用fliter看下

 [HNCTF 2022 Week1]Interesting_include 

参数中必须包含flag,然后就没有其他的了。 

用fliter伪协议读取 [HNCTF 2022 WEEK2]easy_include

正则表达式过滤了flag,php,data和一些特殊字符 

由于php被过滤(此处正则表达式忽略大小写),所以可以用日志文件包含

可以看到ua头被存储在这个日志文件中

 写这个一定要小心,因为一但写错就删不了了

这个还要注意发送后包含不会立即执行,需要在包含一次 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2371681.html

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

相关文章

缓存套餐-01.Spring Cache介绍和常用注解

一.Spring Cache 要使用直接导入坐标即可。 如何选择底层的缓存实现呢&#xff1f;只要导入对应的缓存坐标即可。如果要使用redis作为缓存实现&#xff0c;那么只需要导入redis的maven坐标。 二.常用注解 Cacheable&#xff1a;不光往缓存中写缓存数据&#xff0c;而且会从缓…

C++类与对象—下:夯实面向对象编程的阶梯

9. 赋值运算符重载 9.1 运算符重载 在 C 里&#xff0c;运算符重载能够让自定义类型的对象像内置类型那样使用运算符&#xff0c;这极大地提升了代码的可读性与可维护性。运算符重载本质上是一种特殊的函数&#xff0c;其函数名是 operator 加上要重载的运算符。 下面是运算…

Linux中安装mysql8,转载及注意事项

一、先前往官网下载mysql8 下载地址&#xff1a; https://dev.mysql.com/downloads/选择Linux 二、删除Linux中的mysql&#xff08;如果有的话&#xff09;&#xff0c;上传安装包 1、先查看mysql是否存在&#xff0c;命令如下&#xff1a; rpm -qa|grep -i mysql如果使用这…

SpringBoot的汽车商城后台管理系统源码开发实现

概述 汽车商城后台管理系统专为汽车4S店和经销商设计&#xff0c;提供全面的汽车管理系统解决方案。 主要内容 1. 核心功能模块 系统提供以下主要功能&#xff1a; ​​销售管理​​&#xff1a;记录销售信息&#xff0c;跟踪交易进度​​客户管理​​&#xff1a;维护客户…

DeepSeek实战--手搓实现Agent

1.背景 要学习AI agent&#xff0c;只会用agent 框架&#xff0c;还不够&#xff0c;一旦框架出现问题&#xff0c;没法快速的排查出问题。 学习就应该“知其然&#xff0c;更应该知其所以然” &#xff0c;今天我们就用编码的方式实现一个简单的agent 。我们模拟一套AI学生评…

线性代数——行列式⭐

目录 一、行列式的定义⭐ 1-1、三阶行列式练习 1-2、下面介绍下三角行列式、上三角行列式、对角行列式 ​编辑 二、行列式的性质 2-1、性质1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6 ​编辑 2-2、性质7 2- 3、拉普拉斯定理、克莱姆法则 三…

iPhone手机连接WiFi异常解决方法

iPhone手机连接WiFi异常解决方法 一、问题现象二、iPhone连不上可能的原因三、基础排查与快速修复第一步:重启大法第二步:忽略网络,重新认证第三步:关闭“私有无线局域网地址”第四步:修改DNS服务器第五步:还原网络设置四、路由器端排查及设置关闭MAC地址过滤或添加到白名…

学习设计模式《八》——原型模式

一、基础概念 原型模式的本质是【克隆生成对象】&#xff1b; 原型模式的定义&#xff1a;用原型实例指定创建对象的种类&#xff0c;并通过拷贝这些原型创建新的对象 。 原型模式的功能&#xff1a; 1、通过克隆来创建新的对象实例&#xff1b; 2、为克隆出来的新对象实例复制…

疗愈服务预约小程序源码介绍

基于ThinkPHP、FastAdmin和UniApp开发的疗愈服务预约小程序源码&#xff0c;这款小程序在功能设计和用户体验上都表现出色&#xff0c;为疗愈行业提供了一种全新的服务模式。 该小程序源码采用了ThinkPHP作为后端框架&#xff0c;保证了系统的稳定性和高效性。同时&#xff0c…

【随笔】Google学术:but your computer or network may be sending automated queries.

文章目录 一、问题复述二、问题原因三、解决 前提&#xff1a;你的xxx是自己做的&#xff0c;你自己可以管理&#xff0c;而不是用的那些劣质✈场。 一、问题复述 &#x1f7e2;如下图所示&#xff1a;可以打开谷歌学术&#xff0c;但是一搜索就是这个界面。 二、问题原因 …

长事务:数据库中的“隐形炸弹“——金仓数据库运维避坑指南

引言&#xff1a;凌晨三点的告警 "张工&#xff01;生产库又告警了&#xff01;"凌晨三点的电话铃声总是格外刺耳。运维团队发现数据库频繁进入单用户模式&#xff0c;排查发现某核心表的年龄值&#xff08;Age&#xff09;已突破20亿大关。经过一夜奋战&#xff0c…

ubuntu nobel + qt5.15.2 设置qss语法识别正确

问题展示 解决步骤 首选项里面的高亮怎么编辑选择都没用。如果已经有generic-highlighter和css.xml&#xff0c;直接修改css.xml文件最直接&#xff01; 在generic-highlighter目录下找到css.xml文件&#xff0c;位置是&#xff1a;/opt/Qt/Tools/QtCreator/share/qtcreator/…

Unity-Socket通信实例详解

今天我们来讲解socket通信。 首先我们需要知道什么是socket通信&#xff1a; Socket本质上就是一个个进程之间网络通信的基础&#xff0c;每一个Socket由IP端口组成&#xff0c;熟悉计网的同学应该知道IP主要是应用于IP协议而端口主要应用于TCP协议&#xff0c;这也证明了Sock…

MATLAB仿真定点数转浮点数(对比VIVADO定点转浮点)

MATLAB仿真定点数转浮点数 定点数可设置位宽&#xff0c;小数位宽&#xff1b;浮点数是单精度浮点数 对比VIVADO定点转浮点 目录 前言 一、定点数 二、浮点数 三、定点数转浮点数 四、函数代码 总结 前言 在FPGA上实现算法时&#xff0c;相比MATLAB实现往往需要更长的开发…

【计算机网络】Cookie、Session、Token之间有什么区别?

大家在日常使用浏览器时可能会遇到&#xff1a;是否清理Cookie&#xff1f;这个问题。 那么什么是Cookie呢&#xff1f;与此相关的还有Session、Token这些。这两个又是什么呢&#xff1f; 本文将对这三个进行讲解区分&#xff0c;如果对小伙伴有帮助的话&#xff0c;也请点赞、…

SpringCloud服务拆分:Nacos服务注册中心 + LoadBalancer服务负载均衡使用

SpringCloud中Nacos服务注册中心 LoadBalancer服务负载均衡使用 前言Nacos工作流程nacos安装docker安装window安装 运行nacos微服务集成nacos高级特性1.服务集群配置方法效果图模拟服务实例宕机 2.权重配置3.环境隔离 如何启动集群节点本地启动多个节点方法 LoadBalancer集成L…

Apache Doris 使用指南:从入门到生产实践

目录 一、Doris 核心概念 1.1 架构组成 1.2 数据模型 二、Doris 部署方式 2.1 单机部署&#xff08;测试环境&#xff09; 2.2 集群部署&#xff08;生产环境&#xff09; 三、数据操作指南 3.1 数据库与表管理 3.2 数据导入方式 3.2.1 批量导入 3.2.2 实时导入 3.…

26届秋招收割offer指南

26届暑期实习已经陆续启动&#xff0c;这也意味着对于26届的同学们来说&#xff0c;“找工作”已经提上了日程。为了帮助大家更好地准备暑期实习和秋招&#xff0c;本期主要从时间线、学习路线、核心知识点及投递几方面给大家介绍&#xff0c;希望能为大家提供一些实用的建议和…

拷贝多个Excel单元格区域为图片并粘贴到Word

Excel工作表Sheet1中有两个报表&#xff0c;相应单元格区域分别定义名称为Report1和Report2&#xff0c;如下图所示。 现在需要将图片拷贝图片粘贴到新建的Word文档中。 示例代码如下。 Sub Demo()Dim oWordApp As ObjectDim ws As Worksheet: Set ws ThisWorkbook.Sheets(&…

【Bluedroid】蓝牙 SDP(服务发现协议)模块代码解析与流程梳理

本文深入剖析Bluedroid蓝牙协议栈中 SDP&#xff08;服务发现协议&#xff09;服务记录的全生命周期管理流程&#xff0c;涵盖初始化、记录创建、服务搜索、记录删除等核心环节。通过解析代码逻辑与数据结构&#xff0c;揭示各模块间的协作机制&#xff0c;包括线程安全设计、回…