关于php伪协议

  • 一些封装协议,涉及的相关协议:file://、php://filter、php://input、zip://、compress.bzip2://、compress.zlib://、data://等
  1. file://协议
    php.ini:

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

file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响

file:// [文件的绝对路径和文件名]

例:http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt

  1. 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代码。

php://filter 读取源代码并进行base64编码输出

例:http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=cmd.php

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

例:http://127.0.0.1/cmd.php?file=php://input [POST DATA] <?php phpinfo()?>

关于php伪协议

上一篇:.NET Core把控制台应用做成跨平台服务


下一篇:asp.net core中使用Serilog以及自定义Enricher