ctf show web入门 40

打开靶场发现这道题过滤了数字0-9和大量的符号,但是其中过滤的括号为中文状态下的括号这意味着我们不能使用变量,不能使用中括号索引数组,只能使用无参数函数嵌套的方法来获取数据

这里我们要想读取flag.php需要两个步骤

1.找到文件名

2.读取内容

所以我们要使用以下函数

1 localeconv() 返回一个包含本地化数字和货币格式信息的数组。

2 pos() 该函数返回数组中的当前单元(默认是第一个)。在 PHP 中,localeconv() 的第一个元素固定是 点号 .。

3 scandir('.') 扫描当前目录(即 . 目录)。由于 pos(localeconv()) 输出了 .,所以这里等价于 scandir('.'),它会返回当前目录下所有文件的数组。

4 array_reverse() 将文件数组顺序反转。在 ctf.show 的题目环境中,flag.php 通常在目录的倒数位置,反转后它会排在数组的前面。

5 next() 将数组内部指针向前移动一位。通常反转后的数组第一位是 . 或 ...,执行 next() 刚好可以指向 flag.php。

6 show_source() 读取并高亮显示文件内容。此时它的参数就是 next() 选中的 flag.php。

最后的payload如下:show_source(next(array_reverse(scandir(pos(localeconv())))));

相关推荐
東隅已逝,桑榆非晚4 分钟前
算法3.双指针法-快乐数
c++·笔记·学习·算法
欢欢李26 分钟前
【LTE L3 笔记 01】LTE空口特点
笔记·无线通信·物理层·lte·空口协议
ZZHow10242 小时前
神经网络与深度学习笔记_Day1
人工智能·pytorch·笔记·python·深度学习·神经网络·机器学习
ACP广源盛139246256732 小时前
选型笔记:HDMI2.1 四进一出切换中继方案 GSV6705@ACP 评估
笔记·硬件架构·硬件工程·视频·国产芯片
Z21-X2 小时前
云原生运维实战笔记:华为云存储类服务全景解析——EVS、OBS、SFS与CBR深度实践
运维·笔记·学习·云原生·华为云
1314lay_10072 小时前
ABAP 程序性能优化总结
经验分享·笔记·性能优化
程序边界17 小时前
一台数据集成软件的拆解笔记(下):一致性、容错、跑批与迁移,KFS 真正难的地方在这
java·前端·笔记
金色光环19 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
zhangrelay19 小时前
mrpt杂乱笔记-26-10-31
笔记·学习
熊猫钓鱼>_>20 小时前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony