PHP代码审计基础:PHP伪协议

本文介绍了PHP中的三种伪协议:file://用于访问本地文件系统,条件依赖allow_url_fopen和allow_url_include;php://提供对输入/输出流的访问,常用于读取源码和执行PHP代码;data://则可以传递格式化数据,甚至执行PHP代码。这些协议在代码审计中具有重要性。
摘要由CSDN通过智能技术生成

file://协议

条件:

  • allow_url_fopen = on/off
  • allow_url_include = on/off

作用:

用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopenallow_url_include的影响。
include()/require()/include_once()/require_once()参数可控的情况下,如导入为非.php文件,则仍按照php语法进行解析,这是include()函数所决定的。

说明:

file:// 文件系统是 PHP 使用的默认封装协议,展现了本地文件系统。当指定了一个相对路径(不以/、、\或 Windows 盘符开头的路径)提供的路径将基于当前的工作目录。在很多情况下是脚本所在的目录,除非被修改了。使用 CLI 的时候,目录默认是脚本被调用时所在的目录。在某些函数里,例如 fopen()file_get_contents(),include_path 会可选地搜索,也作为相对的路径。

例子:

  1. file://文件的绝对路径/文件名
http://1.1.1.137:8001/protocol/file.php?file=C:\phpstudy\WWW\A_testCode\protocol\1.txt

在这里插入图片描述

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用于
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值