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())))));

相关推荐
疯狂打码的少年2 小时前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
后季暖5 小时前
langgraph笔记
笔记
·醉挽清风·6 小时前
学习笔记—算法—算法题
笔记·学习·算法
西岸行者6 小时前
硬刚DeepSeek: UDPC与MTFAA的血缘辩论
笔记
a1117766 小时前
机器人导航入门指南(从 0 到 1)
笔记·学习·slam
Nebula_g7 小时前
大模型应用技术速通笔记
笔记·深度学习·机器学习·大模型
xian_wwq7 小时前
【学习笔记】开源 vs 闭源:Llama / Qwen / DeepSeek 生态博弈(34/35)
笔记·学习·开源
浩瀚地学8 小时前
【面试算法笔记】0302-哈希表-哈希表实现
java·经验分享·笔记·算法·面试
hj2862518 小时前
K8S 核心组件与资源概念 + 带注释命令 + 实操案例版笔记
笔记·容器·kubernetes
Z5998178419 小时前
c#软件开发学习笔记--分组、游标与临时表、分页
笔记·学习·c#