当前位置: 首页 > article >正文

详解php://filter--理论

什么是php://filter?

是PHP伪协议的一种,常用于文件包含漏洞。

php:// 用于访问输入/输出流。

filter 意为过滤器,用于在访问数据流之前对数据进行过滤。

php://filter的功能就是访问数据流,并对其进行过滤操作。

使用方法

这是php://filter的基本形式:

php://filter/resource=flag.php  //文件形式的数据流
php://filter/resource=https://blog.csdn.net  //URL形式的数据流

这种形式中,只包含了一个参数resource(该参数是必须的)
参数的值 是我们要访问的 文件形式的数据流URL形式的数据流

用于过滤的参数 read(该参数是可选的):

php://filter/read=convert.base64-encode/resource=flag.php
php://filter/convert.base64-encode/resource=flag.php  //read也可以省略不写

该参数的值作用是:将读取的文件的内容以base64加密的形式输出。

read参数的值就是我们要使用到的过滤器

常用过滤器

convert.base64-encode:
php://filter/convert.base64-encode/resource=<目标文件名> //base64编码读取文件内容

string.rot13:
php://filter/read=string.rot13/resource=<目标文件名> //rot13编码后读取文件内容

convert.iconv.<input-encoding>.<output-encoding> :
php://filter/convert.iconv.utf-8.utf-7/resource=<目标文件名> //将utf8编码转换utf7编码
php://filter/convert.iconv.utf8.utf16/resource=<目标文件名> //将utf8编码转换utf16编码

<input-encoding><output-encoding>可以选取的编码形式有:

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*
ISO-2022-JP
ISO-2022-JP-MS
CP932
CP51932
SJIS-mac (alias: MacJapanese)
SJIS-Mobile#DOCOMO (alias: SJIS-DOCOMO)
SJIS-Mobile#KDDI (alias: SJIS-KDDI)
SJIS-Mobile#SOFTBANK (alias: SJIS-SOFTBANK)
UTF-8-Mobile#DOCOMO (alias: UTF-8-DOCOMO)
UTF-8-Mobile#KDDI-A
UTF-8-Mobile#KDDI-B (alias: UTF-8-KDDI)
UTF-8-Mobile#SOFTBANK (alias: UTF-8-SOFTBANK)
ISO-2022-JP-MOBILE#KDDI (alias: ISO-2022-JP-KDDI)
JIS
JIS-ms
CP50220
CP50220raw
CP50221
CP50222
ISO-8859-1*
ISO-8859-2*
ISO-8859-3*
ISO-8859-4*
ISO-8859-5*
ISO-8859-6*
ISO-8859-7*
ISO-8859-8*
ISO-8859-9*
ISO-8859-10*
ISO-8859-13*
ISO-8859-14*
ISO-8859-15*
ISO-8859-16*
byte2be
byte2le
byte4be
byte4le
BASE64
HTML-ENTITIES (alias: HTML)
7bit
8bit
EUC-CN*
CP936
GB18030
HZ
EUC-TW*
CP950
BIG-5*
EUC-KR*
UHC (alias: CP949)
ISO-2022-KR
Windows-1251 (alias: CP1251)
Windows-1252 (alias: CP1252)
CP866 (alias: IBM866)
KOI8-R*
KOI8-U*
ArmSCII-8 (alias: ArmSCII8)

http://www.kler.cn/a/404717.html

相关文章:

  • 深入理解 Java 阻塞队列:使用场景、原理与性能优化
  • CSS实现实现当文本内容过长时,中间显示省略号...,两端正常展示
  • C语言Day 04 学习总结
  • 内存(RAM)详细介绍
  • 关于一次开源java spring快速开发平台项目RuoYi部署的记录
  • 鸿蒙NEXT开发案例:血型遗传计算
  • vue3的attr透传属性详解和使用法方式。以及在css样式的伪元素中实现
  • 2446.学习周刊-2024年46周
  • 深入解析QP算法及其Python实现
  • 沃丰科技智能质检与传统质检的对比
  • linux定时删除2周前的日志文件
  • windows基础二
  • sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
  • Docker nginx容器高可用(Keepalived)
  • 每日论文22-24ESSERC一种54.6-65.1GHz多路径同步16振荡器
  • 力扣第59题螺旋矩阵 II
  • 无人机场景 - 目标检测数据集 - 车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • React中使用echarts写出3d旋转扇形图
  • uniapp点左上角返回键, 重复来回跳转的问题 解决方案
  • C# OpenCV 通过高度图去筛选轮廓
  • 智慧路面管理系统平台 智慧照明 智慧市政 智慧交通
  • 40分钟学 Go 语言高并发:Go Channel使用与实践教程
  • k8s 集群安装
  • RTC QoS方法十三.(ReedSolomonFEC简介)
  • 音频信号采集前端电路分析
  • android版本ijkplayer2024编译笔记