语言_php_协议

伪协议:PHP带有很多内置URL风格的封装协议,可用于类似fopen()、copy()、file_exists() 和 filesize()的文件系统函数。当遇到文件包含时,我们可以这个特性来完成我们需要的指令。

php://input协议:可以读取没有处理过的POST数据,可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

file://协议: file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响
使用:file:// [文件的绝对路径和文件名]
例子:http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt

data://协议:
例子:
http://127.0.0.1/code/1.php?file=data://text/plain,<?php phpinfo()?>
http://127.0.0.1/code/1.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

php://filter 是一种设计用来允许过滤器程序在打开时成为流的封装协议。这对于单独具有完整功能的文件函数例如 readfile(),file() 和 file_get_contents()很有用,否则就没有机会在读取内容之前将过滤器应用于流之上。
php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了
使用不同的参数可以达到不同的目的和效果:
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。 必选
read=<读链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
例子1:?c=includeKaTeX parse error: Expected 'EOF', got '&' at position 10: _GET[0]?>&̲0=php://filter/…_GET[0]?>&0=php://filter/read=convert.base64-encode|string.rot13/resource=flag.php 释义:源等于flag.php ,读出方法为base64 编码和string.rot13
关于resource:resource= (required) 此参数必须位于 php://filter 的末尾并且需要指向向要过滤的流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赤年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值