文章目录
file://协议
条件:
- allow_url_fopen = on/off
- allow_url_include = on/off
作用:
用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受
allow_url_fopen
与allow_url_include
的影响。
include()/require()/include_once()/require_once()
参数可控的情况下,如导入为非.php文件,则仍按照php语法进行解析,这是include()函数所决定的。
说明:
file://
文件系统是 PHP 使用的默认封装协议,展现了本地文件系统。当指定了一个相对路径(不以/、、\或 Windows 盘符开头的路径)提供的路径将基于当前的工作目录。在很多情况下是脚本所在的目录,除非被修改了。使用 CLI 的时候,目录默认是脚本被调用时所在的目录。在某些函数里,例如fopen()
和file_get_contents(),include_path
会可选地搜索,也作为相对的路径。
例子:
file://文件的绝对路径/文件名
http://1.1.1.137:8001/protocol/file.php?file=C:\phpstudy\WWW\A_testCode\protocol\1.txt
php://协议
条件:
allow_url_fopen
:off/onallow_url_include
:仅php://input php://stdin php://memory php://temp
需要on
作用:
php://
访问各个输入/输出流(I/O streams),在CTF
中经常使用的是php://filter
和php://input
,php://filter
用于读取源码,php://input
用于执