文件包含漏洞相关协议详解

news2024/10/5 15:32:49

今天继续给大家介绍渗透测试相关知识,本文主要内容是文件包含漏洞相关协议详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、文件包含常用协议

首先,我们来介绍以下文件包含常用的协议,在了解并熟练掌握这些协议后,可以帮助我们更好的利用文件包含漏洞。
1、file协议
file协议格式如下所示:

file://……

file协议可以用于访问本地文件系统。
2、php相关协议
php协议格式如下所示:

php://

php协议可以用于访问各个输入输出流,php协议常用的两个子功能,及php://filter/和php://input。
php://filter/格式如下所示:

php://filter/convert.base64-encode/resource=文件名

上述配置可以用于读取指定文件的源码。php://filter/的作用在于,在有了文件包含漏洞后,尽管我们可以直接将文件引用,但是有了php://filter/之后,我们可以查看引用的PHP文件的源码。如果直接引用,那么PHP不会显示这种PHP文件的源码。使用php://filter/协议读取指定文件源码示例如下所示:
在这里插入图片描述
上述代码会将文件源码进行base64加密,如果我们想要得到文件源代码,就需要对上述内容进行解码,解码后结果如下所示:
在这里插入图片描述
php://input常用于执行文件代码,这种伪协议可以将文件包含漏洞直接转化伪RCE(代码执行)漏洞。我们将包含的文件内容改为如下所示:

php://input

之后,我们就将要包含的内容使用POST传输到目的网页内。利用这种方式可以使得文件执行我们POST上传的代码,php://input伪协议利用如下所示:
在这里插入图片描述
3、zip协议
zip协议可以访问zip压缩包里的文件,zip协议的使用要注意只能够使用绝对路径,而不能使用相对路径。zip协议使用格式如下所示:

zip://【压缩包绝对路径】#【压缩包文件】

使用zip协议效果如下所示:
在这里插入图片描述
zip协议一个很大的作用在于我们可以将防护较为严格的文件上传漏洞和文件包含漏洞结合起来,最终获得远程命令执行权限。即上传含有PHP木马的zip压缩包,这样可以使用zip的文件后缀以绕过文件上传漏洞对文件后缀名的限制,然后再利用文件包含漏洞执行这一PHP木马。
4、data协议
data协议类似于php://input协议,也可以将用户的一段指定的输入流作为被包含的文件。
data协议使用格式如下所示:

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

data协议一个很大的优点在于支持编码,例如我们使用如下的base64编码

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

上述URL与上面的明文的URL作用相同。data协议支持编码这一点可以帮助我们绕过很多WAF。使用data协议利用文件包含执行PHP命令效果如下所示:
在这里插入图片描述
5、其他协议
出了上述协议之外,还有一些协议,如zlib://访问压缩流协议、phar://归档协议,ogg://音频流处理协议以及expect://视频流处理协议等等,这些协议有时也可以用于文件包含漏洞。但是这些协议使用比较小众,因此在这里就不过多赘述了。

二、各协议利用条件

注意,上述协议,并不是在任何场景下都可以使用的。部分协议在一些场景中可能并不适用。这些协议的适用条件主要是和PHP版本以及PHP中allow_url_fopen以及allow_url_include这两个参数有关。
一般而言,这些协议受PHP版本及allow_url_fopen及allow_url_include参数影响如下表所示:
在这里插入图片描述
在上图中,allow_url_fopen和allow_url_include参数里是on的,表示该项必须设置为On才支持该功能,如果是off/on的,就表示该参数对该协议的使用不影响。
注意:上图来源于网络,并且PHP版本较老,对于最新版本的PHP支持情况未知,因此对于一些新版本的PHP而言,可能并不非常准确。经过笔者亲测,对于PHP7.3.4版本而言,上表中设置基本正确。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

执行 pkg -t win index.js 报错 node.js使用pkg打包成exe可执行文件

文章目录一、问题&#xff1a;当执行命令 pkg -t win index.js 的时候报以下错误&#xff1a;二、解决办法&#xff1a;三、安装pkg流程四、其他的打包方法五、题外话&#xff1a;更换exe的icon图标一、问题&#xff1a;当执行命令 pkg -t win index.js 的时候报以下错误&#…

[附源码]计算机毕业设计点餐系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

传奇微端架设好后不亮灯是怎么回事微端程序无连接不更新有连接不更新问题解决办法

传奇微端架设好后不亮灯是怎么回事微端程序无连接不更新有连接不更新问题解决办法 这是在架设传奇微端时很多小伙伴都会遇到的问题&#xff0c;今天艾西来教大家怎么解决这个问题 以下图中有打码的望读者理解&#xff08;平台gz&#xff09; 网关配置好后&#xff0c;图中几个电…

pikachu靶场-11 SSRF漏洞

SSRF漏洞 概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制 导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据 数据…

Allegro如何把分离的线段变成封闭连续的图形

Allegro如何把分离的线段变成封闭连续的图形 Allegeo支持把分离的线段变成封闭连续的图形,以下图为例,线段是分离的 具体操作如下 选择shape-compose shape Option选择一个层面,比如画在Board Geometry outline层 Find选择other segs 和Lines 框选图形 鼠标右击选择d…

HTML基础学习笔记合集

HTML学习笔记基础认知基本概念常用标签排版标签标题标签段落标签换行标签&#xff08;单标签&#xff09;水平线标签&#xff08;单标签&#xff09;文本格式化标签图片标签&#xff08;单标签&#xff09;音频标签&#xff08;双标签&#xff09;视频标签&#xff08;双标签&a…

K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停

目录 一、资源说明 二、基本参数 参数 引脚说明 三、驱动说明 大功率MOS模块驱动 对应程序: 四、部分代码说明 接线说明 STC89C52RC大功率MOS模块 STM32F103C8T6大功率MOS模块 五、基础知识学习与相关资料下载 六、视频效果展示与程序资料获取 七、项目主要材料清单 八…

Dockers更新镜像(保留原始数据)

文章目录 一、前言二、使用步骤1.拉取需要更新的镜像版本2.获取当前镜像启动参数3.停止当前镜像4.启动新镜像5.删除旧镜像三、测试验证一、前言 日常工作中,应用程序为了避免漏洞、体验等等肯定是需要定期更新的,使用Docker安装的应用镜像也一样需要定期更新。更新最大的风险…

搭建基于lvs+nginx的负载均衡服务集群

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;蟹黄瓜子文章来源&#xff1a;社区投稿 1.基于四层七层的负载均衡 实现负载均衡的方式有很多&#xff0c;例如…

使用C#写一个Windows服务

创建服务程序 可能你的VS里面没有【Windows服务】这个模板&#xff0c;那么你就需要通过“打开Visual Studio安装程序“&#xff0c;通过VisualStudio Installer来通过“修改”来安装【.NET桌面开发】 通过上面两个地方均可以进入对应的代码文件 public partial class …

4年功能测试月薪9.5K,4个月时间进阶自动化,跳槽涨薪4k后我的路还很长...

前言 最开始我并不是互联网从业者&#xff0c;是经历了一场六个月的培训才入的行&#xff0c;这个经历仿佛就是一个遮羞布&#xff0c;不能让任何人知道&#xff0c;就算有面试的时候被问到你是不是被培训的&#xff0c;我还是不能承认这段历史。我是为了生存&#xff0c;才选…

使用遗传算法计算神经网络的超参数

遗传算法是基于种群的思想&#xff0c;将问题的解通过编码的方式转化为种群中的个体&#xff0c;并让这些个体不断地通过选择、交叉和变异算子模拟生物的进化过程&#xff0c;然后利用“优胜劣汰”法则选择种群中适应性较强的个体构成子种群&#xff0c;然后让子种群重复类似的…

nginx配置websocket支持wss

和前端联调完项目之后&#xff0c;将项目部署到了开发环境上面。结果这时候发现ws连接报错了&#xff0c;怎么回事&#xff0c;明明和前端在本地都联调好了的&#xff01; 观察报错发现&#xff0c;提示我们需要使用wss连接&#xff0c;而我和前端在对接联调时使用的是ws连接。…

mysql 学习---窗口函数

文章目录Mysql 8.0新特性窗口函数常见窗口函数Mysql 8.0新特性 窗口函数 理解&#xff1a; 窗口函数的作用类似于在查询中对数据进行分组&#xff0c;类似于聚合函数&#xff0c;但不同的是把聚合函数是分组的记录合成一条&#xff0c;也就是一组一条数据&#xff0c;窗口函数…

缓存击穿、缓存穿透、缓存雪崩

初学者总是喜欢自己吓自己&#xff0c;在听到缓存击穿、缓存穿透、缓存雪崩等问题后&#xff0c;就觉得这根本不是自己这个级别所能接触的知识点&#xff0c;甚至不敢下定决心去了解。 然而&#xff0c;缓存击穿、缓存穿透、缓存雪崩等概念只是听着高大上罢了&#xff0c;实则并…

RabbitMq应用

1.RabbitMQ介绍 1.1现存问题 服务调用&#xff1a;两个服务调用时&#xff0c;我们可以通过传统的HTTP方式&#xff0c;让服务A直接去调用服务B的接口&#xff0c;但是这种方式是同步的方式&#xff0c;虽然可以采用SpringBoot提供的Async注解实现异步调用&#xff0c;但是这…

Spring之AOP

谈起AOP就不得不说起代理&#xff0c;Java 源代码经过编译生成字节码&#xff0c;然后再由 JVM 经过类加载&#xff0c;连接&#xff0c;初始化成 Java 类型&#xff0c;可以看到字节码是关键&#xff0c;静态和动态的区别就在于字节码生成的时机 静态代理&#xff1a;由程序员…

BLE MESH中的Secure Network beacon包

作用&#xff1a;节点使用安全网络信标来识别子网及其安全状态。可以用来更新Key和Iv Index。 数据包结构&#xff1a; 数据包格式&#xff1a; 大小含义 Beacon Type 1安全网络信标&#xff08;0x01&#xff09; Flags1包含密钥刷新标志和IV更新标志 Network ID8包含网络ID的值…

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

今天是链表章节最后一天&#xff0c;加油&#x1f4aa; 24. 两两交换链表中的节点 题目&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节…

html练习11:案例仿制

1.目标效果 2.布局效果 3.顶端部分制作效果 问题&#xff1a;img和p无法同时垂直居中显示&#xff0c;img会顶端对齐&#xff0c;p会底部对齐 解决方法&#xff1a;把img作为背景加入&#xff1b;用两个div分别做img和p的容器再进行格式调整 4.导航栏部分制作效果 要点&#…