PHP原生类及其利用

前言:

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

<?php 
$a = $_GET['a']; 
$b = $_GET['b']; 
echo new $a($b); 
?>

显然,题中没有给出任何可利用的class,在一阵苦思冥想下找到了一些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伪协议

例如:

SplFileObject(php://filter/read=convert.base64-encode/resource=flag.php)

总结:

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

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
©2023 By Elite

冀公网安备 13108202000889号

| 鲁ICP备2023011162号

声明:本站中用到的所有图片图标,均来源网络,如有侵权请及时联系删除
Theme Argon