php中的一个独特的协议,php://filter,这个协议可以被漏洞利用来显示php源码等。

注意这里:?file=show.php;可以联想到文件包含漏洞,然后我们就可以用php://filter协议来查看源文件内容;
构造:php://filter/read=convert.base64-encode/resource=index.php;
这句话的意思是我们用base64编码的方式来读文件index.php;这时页面会显示出源文件index.php经过base64编码后的内容,然后经过base64解码就可以看到内容。
php://filter简单理解:
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字,filter,可以很容易想到这个协议可以用来过滤一些东西;
使用不同的参数可以达到不同的目的和效果:
名称 | 描述 | 备注 |
---|---|---|
resource=<要过滤的数据流> | 指定了你要筛选过滤的数据流。 | 必选 |
read=<读链的筛选列表> | 可以设定一个或多个过滤器名称,以管道符(|)分隔。 | 可选 |
write=<写链的筛选列表> | 可以设定一个或多个过滤器名称,以管道符(|)分隔。 | 可选 |
<;两个链的筛选列表> | 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。 |
另外用read的解释:

上例中我们应用了read参数和resource参数,当然还可以用write参数,这时我们可以通过指定写的方式来对文件进行一些改变;例如我们想对一些php的内容进行编码的转换(目的一般是为了各种绕过)
参考网站:
https://blog.csdn.net/destiny1507/article/details/82347371
网友评论