我目前正在進行 CTF 挑戰,並透過將相對路徑注入到$filename
PHP 函數呼叫的參數中來提取我認為是標誌的內容
file_get_contents($filename)
由目標系統上的 Apache 伺服器執行。
我透過其他點的提示得到了隱藏該標誌的文件的名稱,但我想知道:
Linux 系統上是否有一個常見的文件,其中包含有關目錄結構和這些目錄中包含的文件的資訊?
我嘗試搜尋多個日誌檔案以查找有趣檔案的引用,但我尚未找到檔案名稱的詳細清單。我也無權讀取整個設備文件。我確實可以完全控制該$filename
參數,但從我收集的情況來看,我只能插入絕對或相對路徑,而無需在其中插入通配符。
答案1
該locate
命令安裝在大多數 Linux 電腦上,從包含系統上所有路徑的資料庫取得其資訊。 cron 作業維護該資料庫。
對於資料庫應該在哪裡,存在著相互競爭的實現locate
,並且可能存在相互競爭的想法,因此您可能需要挖掘幾個版本才能找到它可能隱藏的所有位置。 (如果你已經在機器上就可以了locate locatedb
!)
在我的 Debian 機器上是/var/cache/locate/locatedb
答案2
聽起來您在詢問索引節點和超級區塊。看:http://www.linfo.org/superblock和en.wikipedia.org/wiki/Inode
檔案系統本身不需要「主檔案」來追蹤其中包含的所有檔案和目錄。所以我會說不,沒有“Linux 系統上常見的文件,保存有關目錄結構和這些目錄中包含的文件的資訊”。
然而,透過使用索引節點和超級區塊,檔案系統確實可以追蹤所有檔案和目錄。但以分散式、非集中的方式。