php伪协议


在这里插入图片描述

1.php://协议

  • 条件:
    allow_url_fopen:off/on
    allow_url_include :仅php://input php://stdin php://memory php://temp 需要on
  • 作用:
    php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filterphp://inputphp://filter用于读取源码php://input用于执行php代码
  • 说明
    PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符,
    内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

2.php://filter伪协议

  • 条件
    allow_url_fopen=on/off
    allow_url_include=on/off
    只是读取,需要开启 allow_url_fopen,不需要开启 allow_url_include
  • 说明:
    元封装器,设计用于"数据流打开”时的"筛选过滤”应用,对本地磁盘文件进行读写
    ①输出进行base64加密后的信息
?file=php://filter/convert.base64-encode/resource=xx.php
或
?file=php://filter/read=convert.base64-encode/resource=xx.php

②获得将base64加密后的信息后,再将其解密,得出原信息

3.php://input(读取POST数据)

  • 条件
    allow_url_fopen=on/off
    allow_url_include=on
  • 说明
    可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。 enctype=”multipart/form-data” 的时候 php://input 是无效

:查看当前运行的是哪个php.ini
2,3需要将php可执行加入环境变量, 如果没有加,那么请使用php可执行文件所在位置的完整路径代替

  1. 打印出phpinfo();,找到Loaded Configuration File那一行
    在这里插入图片描述
  2. 命令行输入php -i |grep php.iniphp -i其实就是输出phpinfo();)
  3. php -r “phpinfo();” |grep php.ini

4.file://伪协议(读取文件内容)

  • 条件
    allow_url_fopen=on/off
    allow_url_include=on/off (均不受影响)
    打ctf中常用于读取本地文件
?file=file://C:\Windows\System32\drivers\etc\hosts

在这里插入图片描述

5.phar://伪协议(读取压缩包文件内容)

  • 条件
    allow_url_fopen: off/on
    allow_url_include: off/on (均不受影响)

:php 版本大于等于5.3.0,压缩包需要是zip协议压缩,rar不行,将木马文件压缩后,改为其他任意格式的文件都可以正常使用。

  • 格式
?file=phar://压缩包名/内部文件名
例:phar://x.zip/x.php

6.zip://伪协议

zip伪协议和phar协议类似,但是用法不一样(url不同)

  • 条件
    allow_url_fopen: off/on
    allow_url_include: off/on (均不受影响)
  • 格式
?file=zip://[压缩文件绝对路径]#[压缩文件内的子文件名]   
例: zip://D:\phpstudy\WWW\x.zip%23shell.php       #->%23

7.data://伪协议(读取文件)

(可以直接达到执行php代码的效果)
和php://input很像,php://inputpost提交数据那样提交数据,
data://是以get方式提交数据,也是可以执行提交的脚本

  • 格式
?file=data://text/plain,<?php%20phpinfo()?>

如果对特殊字符进行了过滤,可以通过base64编码后再输入

data://text/plain;base64,base64加密的代码

可配合php命令执行漏洞,实现对一些数据的获取
如:<?php system("ls")?>

总结

参考实例1

参考实例2

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值