当前位置: 首页 > article >正文

PHP伪协议总结

目录

1、file://协议

什么是File:

如何使用File:

PHP.ini:

2、php://协议

条件:

2.1php://filter

2.2php://input

3、zip://, bzip2://, zlib://协议

PHP.ini:

3.1zip://协议

使用方法:

3.2bzip2://协议

使用方法:

3.3zlib://协议

使用方法:

4、data://协议

PHP.ini:

5、总结


1、file://协议

本地文件传输协议

什么是File:

File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。 

如何使用File:

要使用File协议,基本的格式如下:file:///文件路径,比如要打开F盘flash文件夹中的1.swf文件,那么可以在资源管理器或浏览器地址栏中输入:file:///f:/flash/1.swf回车

PHP.ini:

file:// 协议在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

img

2、php://协议

条件:

不需要开启allow_url_fopen,仅php://input、 php://stdin、 php://memory 和 php://temp 需要开启allow_url_include。

php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。

2.1php://filter

读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

PHP.ini:

php://filter在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

img

2.2php://input

可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

PHP.ini:

allow_url_fopen :off/on

allow_url_include:on

img

3、zip://, bzip2://, zlib://协议

PHP.ini:

zip://, bzip2://, zlib://协议在双off的情况下也可以正常使用;

allow_url_fopen :off/on

allow_url_include:off/on

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名。

img

3.1zip://协议

使用方法:

zip://archive.zip#dir/file.txt

zip:// [压缩文件绝对路径]#[压缩文件内的子文件名]

3.2bzip2://协议

使用方法:

compress.bzip2://file.bz2

3.3zlib://协议

使用方法:

compress.zlib://file.gz

注意:bzip2://和zlib://只能在Linux环境下使用,windows环境下无法使用!!!

4、data://协议

PHP.ini:

data://协议必须满足双on才能正常使用;

allow_url_fopen :on

allow_url_include:on

img

注意:这种方法基本不可能实现,必须满足双on才能正常使用。这种条件太过苛刻!!!

5、总结

PHP封装协议在CTF蛮常见的,是经常会遇到的出题点,以下是这篇文章的总结,希望能够帮助到大家

img


http://www.kler.cn/news/283923.html

相关文章:

  • QT实战项目之音乐播放器
  • ES6基础----iterator接口的使用
  • 【Android】UI拓展之滑动菜单、悬浮按钮、CoordinatorLayout布局等
  • 分布式计算架构详解以及任务调度方式
  • python用波形显示udp数据实现一个模拟示波器
  • Leetcode3240. 最少翻转次数使二进制矩阵回文 II
  • ES常用多条件查询
  • 西方法律思想史考试复习材料
  • 每天一个数据分析题(五百一十一)- 神经网络
  • 技术风暴中的应急策略:开发团队如何应对突发故障与危机
  • Java笔试面试题AI答之面向对象(9)
  • 自己开发完整项目一、登录注册功能-01
  • 集合及数据结构第十三节(下)———— 枚举与Lambda表达式
  • MES基于C#开发计划管理组件集成WinCC中使用
  • Java框架SpringBoot(一)
  • 【ceph学习】rados bench性能测试工具介绍
  • JAVA中有关锁的详解
  • 鸿蒙HarmonyOS开发:创建新的Lite工程
  • cesium加载在线3dtiles
  • 腾讯地图SDK Android版开发 9 覆盖物示例3点聚合
  • Flink1.14.* 各种算子在StreamTask控制下如何调用的源码
  • FPGA实现SDI视频H265压缩网络推流输出,基于VCU架构,支持12G-SDI 4K60帧,提供工程源码和技术支持
  • 批量进行Mysql数据处理的一项工作记录以及保存一个nginx变量大全
  • Linux下网络缓冲区——chainbuffer的具体设计
  • 白银现货的两大指标,如何使用?
  • ES常用操作
  • C++标准 alignas 与 windows 封装指令 (pack pragma) 的区别
  • 物联网架构之HBase
  • AI加持的开发平台,如何满足您的独一无二?
  • 智能合约开发与测试1