ディレクトリ構造を含むファイル

ディレクトリ構造を含むファイル

$filename私は現在CTFチャレンジに参加しており、 PHP関数の呼び出しのパラメータに相対パスを挿入することで、フラグと思われるものを抽出しました。

file_get_contents($filename)

ターゲット システム上の Apache サーバーによって実行されます。

フラグが隠されているファイルの名前は、他の時点でのヒントからわかりましたが、疑問に思いました。

Linux システムに一般的に存在し、ディレクトリ構造とこれらのディレクトリに含まれるファイルに関する情報を保持するファイルはありますか?

興味深いファイルへの参照を見つけるために、いくつかのログ ファイルを検索してみましたが、ファイル名の詳細なリストはまだ見つかりませんでした。また、デバイス ファイル全体を読み取る権限もありません。パラメータを完全に制御できます$filenameが、ワイルドカードなしで絶対パスまたは相対パスのみを挿入できることがわかりました。

答え1

ほとんどの Linux マシンにインストールされているこのlocateコマンドは、システム上のすべてのパスを含むデータベースから情報を取得します。このデータベースは cron ジョブによって管理されます。

データベースを配置する場所については競合する実装やおそらく競合するアイデアがあるlocateため、データベースが隠れている可能性のあるすべての場所を見つけるには、いくつかのバージョンを掘り起こす必要があるかもしれません。(すでにマシン上にいる場合は可能ですlocate locatedb!)

私のDebianマシンでは/var/cache/locate/locatedb

答え2

inode とスーパーブロックについて質問されているようです。参照:http://www.linfo.org/superblockそしてen.wikipedia.org/wiki/Inode

ファイルシステムには、その中に含まれるすべてのファイルとディレクトリを追跡するための「マスターファイル」は必要ありません。したがって、「Linux システムによく存在するファイルで、ディレクトリ構造とこれらのディレクトリに含まれるファイルに関する情報を保持します」

ただし、i ノードとスーパー ブロックを使用することで、ファイル システムはすべてのファイルとディレクトリを追跡します。ただし、分散型で、集中化されていない方法で追跡します。

関連情報