PHP原生类及其利用

目录

前言:

查找文件的原生类:

DirectoryIterator:

FilesystemIterator:

GlobIterator:

读取文件的原生类:

SplFileObject:

总结:


前言:

前几天打CTF,遇见了一道这样的题

<?php 

$a = $_GET['a']; 

$b = $_GET['b']; 

echo new $a($b); 

?>

显然,题中没有给出任何可利用的class,这便要利用到PHP中的原生类,顾名思义,就是PHP中自带的类

查找文件的原生类:

DirectoryIterator:

该类可配合glob伪协议查找文件,它会创建一个指定目录的迭代器,当遇到echo输出时会触发Directorylterator中的__toString()方法,输出指定目录里面经过排序之后的第一个文件名

例如:

Directorylterator(glob://*flag*)

FilesystemIterator:

这个继承了DirectoryIterator类,利用方法同上

GlobIterator:

通过名字可以看出来,这个具有global性质,可以搜索全局的文件,因此无需借助glob://伪协议

可直接使用:

 GlobIterator(*flag*)

读取文件的原生类:

SplFileObject:

当我们通过可查找文件的原生类查找到敏感文件时可用此类,来读取敏感文件内的内容

该类同样通过echo触发SplFileObject中的__toString()方法。(该类不支持通配符,所以必须先获取到完整文件名称才行)

例如:

SplFileObject(flag.php)

但是直接加入文件的的话,它只会返回文件的第一行字符,如果想要返回文件全部内容的话须借助php://filter伪协议

总结:

打CTF还是要多学多练,在题目中所碰到的知识点千奇百怪,还是得多积累,坚持一天一道CTF题

更多相关文章请查看作者博客icon-default.png?t=N2N8http://blog.byzhb.top/

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elitewa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值