ctfshow Web入门 40 - 命令执行(10)
题目过滤如下:
先查看当前目录下面有啥文件
参考了羽大佬的WP:https://blog.csdn.net/miuzzx/article/details/108415301
首先有几个PHP的函数:
print_r() 函数用于打印变量,以更容易理解的形式展示
localeconv():是一个编程语言函数,返回包含本地数字及货币信息格式的数组。其中数组中的第一个为点号(.)
pos():返回数组中的当前元素的值。
这里也可以换成current(),作用和pos类似
array_reverse():数组逆序
scandir():获取目录下的文件
next(): 函数将内部指针指向数组中的下一个元素,并输出。
通过 pos(localeconv())得到点号
因为scandir('.')表示得到当前目录下的文件
PS:如果我没有记错,scnadir('/')也能扫描当前目录下面的文件,但是这道题貌似无法使用chr(47)和chr(48)(.和/的ASCII码)进行过滤的绕过
首先,扫描目录下文件,这里使用var_dump是不行的
接着就是先逆方向,再查看第二个元素。注意先后关系
?c=show_source(next(array_reverse(scandir(current(localeconv())))));
[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步