⭐️PHP伪协议详解

⭐️PHP伪协议详解PHP 伪协议是 PHP 自己支持的一种协议与封装协议 简单来说就是 PHP 定义的一种特殊访问资源的方法

大家好,欢迎来到IT知识分享网。

PHP伪协议详解

一、前言

1.什么是PHP伪协议?

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

有些伪协议成功执行需要allow_url_fopen和allow_url_include的支持。


2.什么时候用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 $a=($_GET["file"]); echo(file_get_contents($a));//获取文件内容 ?> 

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

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

格式示例:

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

压缩及协议访问格式:


data://

data://伪协议可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果。

data://伪协议 成功执行前提
php.ini设置allow_url_include 与allow_url_open都为On。

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

格式示例:

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

phar://

phar://伪协议可以对zip格式压缩包进行访问解析

格式示例:

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

注意这里与zip://不同的地方是,phar访问压缩包内容是通过/访问,而zip是通过#访问



👨‍💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞


🔥精品付费专栏:(暂时免费,尽快订阅、收藏哦)🔥
《跟老吕学Python编程》
《跟老吕学Python编程·附录资料》

🌐前端:
《跟老吕学HTML》
《XHTML》
《CSS》
JavaScript》
《Vue》




💻后端:
《跟老吕学C语言》
《C++》
《Java》
《R》
《Ruby》
《PHP》
Go
《C#》
《Swift》
《Python》









💾数据库:
《跟老吕学Oracle语言》
《MYSQL》
《SQL》
《PostgreSQL》
《MongoDB》





免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119255.html

(0)
上一篇 2025-11-06 20:20
下一篇 2025-11-06 20:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信