PHP伪协议
文章目录
PHP伪协议相关
PHP伪协议
PHP伪协议,事实上是其支持的协议与封装协议。
而其支持的协议有:
|
|
php://协议
php://filter
php://filter
是一种元封装器, 设计用于数据流打开时的筛选过滤应用。
常用于读取源代码并进行base64
编码输出,不然源码会直接当做PHP
代码执行,这样的话就看不到源代码内容了。并且不受allow_url_fopen
,allow_url_include
的影响。
用法:
|
|
这是使用的过滤器是convert.base64-encode
,它的作用就是读取xxx.php
的内容进行base64
编码后输出。
php://input
php://input
是个可以访问请求的原始数据的只读流。
可以接收post
请求作为输入流的输入,将请求作为PHP
代码的输入传递给目标变量,以达到以post
的形式进行输入的目的。
CTF中经常使用file_get_contents
获取php://input
内容(POST),需要开启allow_url_include
,并且当enctype=”multipart/form-data”
的时候 php://input
是无效的。
也用来写一句话木马:
|
|
file://协议
file://
file://
文件系统是PHP
使用的默认封装协议。
常用于访问本地文件系统,通常用来读取本地文件的且不受allow_url_fopen
与allow_url_include
的影响。
用法
|
|
注:file://
协议必须是绝对路径
phar://协议
phar://
phar://
PHP
归档,常常跟文件包含,文件上传结合着考察。当文件上传仅仅校验mime类型与文件后缀,可以通过以下命令进行利用。
|
|
zlib://协议
zip://
zip://
在allow_url_fopen
,allow_url_include
都关闭的情况下可以正常使用,使用如下:
|
|
bzip2://
在allow_url_fopen
,allow_url_include
都关闭的情况下可以正常使用,使用如下:
|
|
zlib://:在allow_url_fopen
,allow_url_include
都关闭的情况下可以正常使用,使用如下:
|
|
data://
data://
资源类型;编码,内容,数据流封装器
当allow_url_fopen
,allow_url_include
打开的时候,任意文件包含就会成为任意命令执行
|
|