php伪协议详解


前言

在buuctf上刷题,又刷到了php伪协议,正好总结一下。

文件包含漏洞

开发者不想重复写相同的代码,于是,就把相同的代码写到文件里面,当想使用这些代码时,直接调用就可以了。而在编程语言中,会把这些文件当成变量,于是恶意用户就可能把恶意文件传入进来。
include()

PHP伪协议

想了解PHP伪协议,我们就从字面上逐层剖析。
什么叫做协议?协议是一种标准规范,定义了设备之间如何进行通信和交换信息比如,在URL中,我们有很多常见的。格式为
http://
ftp://
file://
PHP伪协议,就是php://
那么,PHP的协议为什么还要叫“伪”呢?伪就说明这个并不是真正的协议,而是PHP用来模拟访问资源的方式。
所以,PHP伪协议在获取资源上有很大的用处。这里我会介绍几个常见的PHP伪协议

1 . php://input 可以访问原始数据的只读流,可以读取POST请求的参数

在这里插入图片描述
这就是一个使用方法举例

2 . php://filter是一种访问本地文件的方法
格式为php://filter/read=convert.base64-encode/resource=index.php
/read=convert.base64-encode/表示读取的方式为base64编码
resource=index.php表示文件的来源是index.php

为什么要使用base64编码呢?其实呀,如果不把文件编码了,他就会直接执行。我们就看不到文件的内容了。

3 . data伪协议
主要用于数据流的读取,如果输入的是php代码,就会直接执行
data://text/plain;base64,xxxxxx(base64编码后的数据)

什么时候用PHP伪协议呢

涉及文件包含漏洞的
inclde
require
highlight_file
file_get_contents
fopen(比较常见)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值