1. 程式人生 > 實用技巧 >ctfshow Web入門 40 - 命令執行(10)

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