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

posted @ 2020-10-27 17:41  ch0bits  阅读(713)  评论(0编辑  收藏  举报