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题的时候很痛苦,你只能眼睁睁看着其他人领先你