返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP伪协议基本原理介绍
  • 499
分享到

PHP伪协议基本原理介绍

PHP伪协议PHP伪协议原理 2022-11-16 00:11:43 499人浏览 安东尼
摘要

目录前言常见的PHP伪协议php://inputphp://filterzip://与bzip2://与zlib://协议data://phar://前言 引用一张比较清晰易懂的图

前言

引用一张比较清晰易懂的图

php伪协议是php自己支持的一种协议与封装协议,简单来说就是php定义的一种特殊访问资源的方法。

常见的php伪协议

php://input

php://input 是个可以访问请求的原始数据的只读流,获取POST请求数据的协议

当enctype=”multipart/fORM-data” 的时候 php://input 是无效的。

要使php://input 成功使用还需要配置php.ini 中的 allow_url_include设置为On

案例代码

php
<?php
@include($_GET["file"]);
?>

构造执行的代码,输出结果

php://filter

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

在利用上很多都是与包含函数结合使用,读入或者输出获取文件源码然后编码让其不执行从而输出

php://filter 的使用:如
php://filter/read=convert.base64-encode/resource=index.php
php://filter/resource=index.php

php://filter 伪协议组成:
read=<读链的筛选列表>
resource=<要过滤的数据流>
write=<写链的筛选列表>

php://filter/read=处理方式(base64编码,rot13等等)/resource=要读取的文件

read 对应要设置的过滤器:
常见的过滤器分字符串过滤器、转换过滤器、压缩过滤器、加密过滤器
其中convert.base64-encode ,convert.base64-decode都属于 转换过滤器

<?php
$a=($_GET["file"]);
echo(file_get_contents($a));//获取文件内容
?>

访问输出base64编码后的内容

zip://与bzip2://与zlib://协议

zip:// 等属于压缩流的协议,通过直接压缩普通文件为zip文件,再通过zip:// 协议读取,可以直接执行php代码。压缩后的zip文件可以随意修改后缀也不影响zip://协议读取。(注意是如phpinfo.txt直接压缩为zip,而不是文件夹压缩zip)

例:

<?php
$a=($_GET["file"]);
include($a);
?>

压缩及协议访问格式:

压缩文件为.zip后缀
zip://绝对路径/phpinfo.zip%23phpinfo.php
压缩文件为.bz2后缀
compress.bzip2://绝对路径/phpinfo.zip/phpinfo.php
压缩文件为.gz后缀
compress.zlib://绝对路径/phpinfo.zip/phpinfo.php

zip://访问

data://

data://协议与php://input 有很点相似的地方。他们都可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果,data:// 的成功执行需要php.ini设置allow_url_include 与allow_url_open都为On。

data://协议的格式是: data://数据流封装器,相应格式数据

常见的用法为
data://,<?php%20phpinfo();?>   
data://text/plain,<?php%20phpinfo();?>
data://text/plain;base64,PD9waHAGCGhwaW5mbygpOz8%2b

例:

<?php
$a=($_GET["file"]);
include($a);
?>

构造data:// 访问

phar://

phar://伪协议在前面phar反序列化的时候学习过,phar也可以对zip格式压缩包进行访问解析。

格式为:phar://绝对路径\phpinfo.zip\phpinfo.php

到此这篇关于PHP伪协议基本原理介绍的文章就介绍到这了,更多相关PHP伪协议内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP伪协议基本原理介绍

本文链接: https://lsjlt.com/news/173049.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP伪协议基本原理介绍
    目录前言常见的php伪协议php://inputphp://filterzip://与bzip2://与zlib://协议data://phar://前言 引用一张比较清晰易懂的图 ...
    99+
    2022-11-16
    PHP伪协议 PHP伪协议原理
  • GoldenGate的基本原理介绍
    本篇内容介绍了“GoldenGate的基本原理介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是Go...
    99+
    2024-04-02
  • 【网络安全篇】php伪协议-漏洞及其原理
    🏆今日学习目标: 🍀学习php伪协议 ✅创作者:贤鱼 ⏰预计时间:35分钟 🎉个人主页:贤鱼的个人主页 🔥专栏系列:网络安全 &#x...
    99+
    2023-08-30
    php web安全 安全
  • OpenFeign 基本介绍和原理了解
    了解 OpenFeign OpenFeign 组件的前身是 Netflix Feign 项目。后来 Feign 项目被贡献给了开源组织,才有了今天使用的 Spring Cloud OpenFeign ...
    99+
    2023-09-20
    java spring spring cloud
  • PHP phar:协议对象注入技术介绍
    前言在之前的BlackHat 2018大会上公布了一款针对PHP应用程序的全新攻击技术。我们将通过这篇文章简单介绍下。来自Secarma的安全研究员Sam Thomas发现了一种新的开发技术,它可以导致PHP对象注入漏洞——而无需使用PHP...
    99+
    2023-06-04
  • PHP基本语法介绍
    这篇文章主要介绍“PHP基本语法介绍”,在日常操作中,相信很多人在PHP基本语法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP基本语法介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!在进行PH...
    99+
    2023-06-17
  • 【网络层+数据链路层】深入理解IP协议和MAC帧协议的基本原理
    文章目录 前言一、IP协议二、MAC帧协议 1.以太网2.以太网帧(MAC帧)格式报头3.基于协议讲解局域网转发的原理总结 前言 为什么经常将TCP/IP放在一起呢?这是因为IP层的核心工作就是通过IP地址来定位...
    99+
    2023-10-21
    tcp/ip 网络协议 网络 mac 数据链路层 网络层 路由器
  • PHP 基本知识点介绍
    文章目录 前言一、PHP是什么语言二、基础知识1. 运行环境2、基本语法3、超全局变量1、$GLOBALS2、$_SERVER3、$_GET4、$_POST5、$_REQUEST6、$_FIL...
    99+
    2023-09-01
    php
  • Linux Tcp内核协议栈Packet Drill基本原理是什么
    本篇内容介绍了“Linux Tcp内核协议栈Packet Drill基本原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux ...
    99+
    2023-06-15
  • 基于隐私保护技术的DNS通信协议介绍
    本文提出了一种基于用户数据报协议的DNS传输中用户隐私保护的加密方法:DNSDEA。该方法采用PKI加密体系与DNS协议相融合,不仅解决了域名隐私保护问题,而且与传统DNS体系相兼容,保持了DNS系统的简单、高效的技术特点。域名系统(DNS...
    99+
    2023-06-04
  • 介绍GitLab流程的基本概念和工作原理
    GitLab是一种基于网络的Git存储库管理工具。它支持一系列功能,包括合并请求、问题跟踪、自动构建和持续集成等。在开发团队中,GitLab通常用来管理源代码。本文将介绍GitLab流程的基本概念和工作原理。GitLab流程简介GitLab...
    99+
    2023-10-22
  • 软件开发架构介绍||OSI七层协议之物理
    一、网络编程  软件开发架构   C/S架构     C:客户端 想体验服务的时候才会去找服务端体验服务     S:服务端   24小时不间断的提供服务,即时监听,随时待命   B/S架构     B:浏览器    想体验服务的时候才会...
    99+
    2023-01-31
    架构 七层 物理
  • 爬虫基本原理介绍、实现以及问题解决
    文章目录 一、爬虫的意义1.前言2.爬虫能做什么3.爬虫有什么意义 二、爬虫的实现1.爬虫的基础原理2.api的获取3.爬虫实现 三、反爬解决方案1.反爬的实现方式2.反爬的解决方法3...
    99+
    2023-09-02
    python 爬虫
  • Promise的原理和基础用法介绍
    这篇文章主要介绍“Promise的原理和基础用法介绍”,在日常操作中,相信很多人在Promise的原理和基础用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Promis...
    99+
    2024-04-02
  • Android文本与视图基本操作梳理介绍
    目录目录文件说明一、设置文本内容1、在layout文件下新建一个xml文件2、配置XML文件设置文本3、string文件内容4、java类调用二、设置文本的大小三、设置文本颜色四、设...
    99+
    2024-04-02
  • 计算机网络编程MQTT协议基础原理详解
    目录什么是 MQTT 协议MQTT 基础发布 - 订阅模式可拓展性消息过滤基于主题的过滤基于内容的过滤基于类型的过滤MQTT 与消息队列的区别MQTT 重要概念MQTT client...
    99+
    2024-04-02
  • PHP无状态的介绍与原理解析
    PHP无状态的介绍与原理解析 在Web开发中,无状态性是一个重要概念,它指的是服务器在处理客户端请求时不会保存任何客户端的状态信息,每个请求都是独立的,并不依赖于之前的请求。PHP作为...
    99+
    2024-03-06
    原理 php 状态
  • 基于ImageMagick的php图片处理库Grafika介绍
    Grafika是一个PHP图像处理库,是基于Imagick和GD,可以用于改变图片大小,剪裁,比较,添加水印等等功能。还有感知哈希,高级图像过滤,绘制贝塞尔曲线等功能,可谓非常强大。 《1、图像基本处理》《2、图像特效处理模块》《3、图像属...
    99+
    2023-09-11
    php 开发语言
  • PHP数组基本概念详细介绍是怎样的
    PHP数组基本概念详细介绍是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数组在我们PHP中是很重要的,如何利用数组实现我们想要的功能,我们这里就来看看关...
    99+
    2023-06-17
  • Linux系统基本的内存管理知识介绍
    这篇文章主要介绍“Linux系统基本的内存管理知识介绍”,在日常操作中,相信很多人在Linux系统基本的内存管理知识介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统基本的内存管理知识介绍”的疑...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作