php伪协议语法,php伪协议分析

本文大量转载于:https://blog.csdn.net/qq_41289254/article/details/81388343 (感谢博主)

一,php://  访问输入输出流,有两个常用的子协议

1,php://filter  设计用来过滤筛选文件

使用方法:非php语法文件include失败,直接输出源码内容。

php://filter/resource=需要包含的文件

3a3a758d0a7778defb0a966a34e8a753.png

还有一种使用方法是:以读的形式,将需要包含的文件名转化为base64编码的方式进行读取,这样传入至include函数的文件名不会被误以为是php执行文件而执行,而是以base64编码方式显示源码

php://filter/read=convert.base64-encode/resouece=需要包含的文件

daccd61dad97776ee212f0668337d600.png

二、php://input

利用方法:将要执行的语法php代码写在post中提交,不用键与值的形式,只写代码即可

8b87ec6f3e5fdfd2c9e8b9c94e6366d9.png

9dd3366884be59bbe7813f484a322d3a.png

三、file://  后跟文件目录绝对路径

file:// 与php:filter类似,访问本地文件,但是只能传入绝对路径

abd2f6096ef7552f38bac1db201ac793.png

四、phar://  可以查找指定压缩包内的文件

使用绝对路径与相对路径均可

98f087e2ab1aa3bf5b27839c3f47c1cf.png

五、zip://  用法与phar类似,不过有两点要注意

1,只能传入绝对路径。

2,要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23

3a3312f5ae335e2a4be86b44949e27c0.png

六、data  与input 类似,都是用户可以控制传入的php代码

1,直接写入代码

data: text/plain,<?php 执行内容 ?>

2d4af54a8a2d722c626ede246ba27249.png

2、base64编码后写入代码

data:text/plain;(注意是分号不是逗号,与前面不同)base64,编码后的php代码

4855ffefc54b20a8c15abcf82d48bd3b.png

注:有一点要注意的问题,base64编码后的加号和等号要手动的url编码,否则无法识别。如下图所示:

e1fc438e5006d0044d81f7470b927859.png

七、http协议

include中也可以传入外部链接,采用http://

578e1a59e2702b2c4cba2689bf661956.png

关于allow_url_fopen和allow_url_include的设置和用法总结:

8a74d4be3abd088745607425c3dd47fa.png

标签:分析,协议,include,编码,url,base64,filter,php

来源: https://www.cnblogs.com/cute-puli/p/14392472.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值