这里介绍一下:php:// 协议
条件:
allow_url_fopen:off/on
allow_url_include :仅php://input php://stdin php://memory php://temp 需要on
作用:
php:// 访问各个输入/输出流(I/O streams),在CTF里经常使用的是php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。
说明:
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符,
内存里、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
php://filter参数详解
该协议的参数会在该协议路径上进行传递,多个参数都可以在一个路径上传递。具体参考如下:
可用的过滤器列表(4类)
此处列举主要的过滤器类型,详细内容请参考:
https://www.php.net/manual/zh/filters.php
示例:
php://filter/read=convert.base64-encode/resource=[文件名]读取文件源码(针对php文件需要base64编码)
2.php://input + [POST DATA]执行php代码
若有写入权限,写入一句话木马
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]