进入靶场,检查代码看到有source.php,访问 /source.php
读代码,在参数中传入 file,通过checkFile后,会加载file界面。
再看checkFile,
第一个判断,是非空并且是个字符串,否则返回false
第二个判断,如果page在白名单里,返回true。白名单是source.php hint.php
source.php已经看了,没有flag,试试hint.php
也没有flag,但是说flag在 ffffllllaaaggg里面。先别管,继续读代码
第三个判断,如果page从文号前面截断后,在白名单里面,则返回true。也就是说 hint.php?xxxxxxx也能通过判断。这里想到include文件包含漏洞,之前在hint.php中,知道flag在ffffllllaaaagggg里面,猜测 hint.php?ffffllllaaaaggg
可以看到请求完成了,但是没有得到flag,发现这里ffffllllaaaagggg正好是四层,往上找四层目录试一下 hint.php?../../../../ffffllllaaaagggg
找到flag,完成解题