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

相关推荐
ACP广源盛139246256734 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
文人sec5 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
摇滚侠7 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
xier_ran7 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
志尊宝7 小时前
Vue3 零基础每日笔记(078):首屏加载速度优化汇总——清单化方案
笔记
ZZHow102410 小时前
Ascend C算子开发(高级)笔记
c++·人工智能·笔记·深度学习·华为云
PC2005-cloud11 小时前
Mysql学习笔记:InnoDB Cluster 集群从零搭建实战,基于 Docker 实现高可用读写分离架构
笔记·学习·mysql
小陈phd11 小时前
深入理解agent学习笔记(七)——动态提示词与Skills
笔记·学习
我命由我1234511 小时前
田野笔记极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
小陈phd12 小时前
深入理解agent学习笔记(六)——提示工程-优化系统提示词
笔记·学习