我目前正在进行 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 系统上常见的文件,保存有关目录结构和这些目录中包含的文件的信息”。
然而,通过使用索引节点和超级块,文件系统确实可以跟踪所有文件和目录。但以分布式、非中心化的方式。