php://filter详解

Itachi

我们都知道 include() 是文件包含的意思,举个简单的例子:

1
2
3
4
5
#include<stdio.h>

void main() {
. . .
}

很显然,include() 用法同C语言:引入一个文件,则这个文件中的所有内容(变量、函数、类)都可以在本文件中使用。
回到PHP,文件包含的具体细节:
我在本地写一个 1.jpg(这里讲将文件类型不写成PHP,意为:include 函数会读取文件内容,不需要知道这是什么文件)
img
img
img
访问本地页面
img


此时我将 1.jpg 中的内容改掉(只要不是PHP就行)
img
访问本地
img
我们发现他会原样输出
但这和伪协议有什么关系?
我在WWW的上级目录写一个 1.php 文件
img
img
payload:?a=php://filter/read=convert.base64-encode/resource=../1.php
img
include() 不认识这个文件的时候(不为PHP。我们使用 base64 加密,故不为PHP),同样原样输出

  • 标题: php://filter详解
  • 作者: Itachi
  • 创建于 : 2022-01-13 21:09:02
  • 更新于 : 2022-01-13 23:48:41
  • 链接: https://blog.tarchi.top/ctf/filter/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
php://filter详解