PHP伪协议
文章目录
file://
作用:
用于访问本地文件系统
语法:
file:// [文件的绝对路径和文件名]
举例:
http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt
file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响
php://filter
作用:
是php中独有的一种协议,它是一种过滤器,可以作为一个中间流来过滤其他的数据流。通常使用该协议来读取或者写入部分数据,且在读取和写入之前对数据进行一些过滤,例如base64编码处理,rot13处理等。读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。
语法:
php://filter/过滤器|过滤器/resource=待过滤的数据流
①读取文件内容:php://filter/read=convert.base64-encode/resource=文件名
②写入文件内容: php://filter/write=convert.base64-decode/resource=文件名
举例:
http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=./cmd.php
php://input
作用:
可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。
语法:
php://input `[POST DATA]`你想写入的字符串
举例: