
私は現在CTFチャレンジを進めており、$filename
PHP関数呼び出しのパラメータに相対パスを挿入してフラグと思われるものを抽出しています。
file_get_contents($filename)
ターゲットシステムのApacheサーバーによって実行されます。
別のポイントのヒントでフラグを隠すファイル名を取得しましたが、知りたいです。
ディレクトリ構造とそのディレクトリに含まれるファイルに関する情報を含むLinuxシステムの共通ファイルはありますか?
興味深いファイルへの参照を見つけるために複数のログファイルを検索してみましたが、詳細なファイル名のリストが見つかりませんでした。また、デバイスファイル全体を読み取る権限もありません。パラメータに対する完全な制御権はありますが、$filename
私が収集した情報によれば、ワイルドカードを挿入せずに絶対パスまたは相対パスのみを挿入できます。
答え1
ほとんどのLinuxコンピュータにインストールされているこのlocate
コマンドは、システムへのすべてのパスを含むデータベースから情報を取得します。クローンジョブはこのデータベースを維持します。
データベースがどこにあるべきかについての競合的な実装と、おそらく競合するアイデアがあるため、データベースがlocate
隠されている可能性がある場所を見つけるには、いくつかのバージョンを調べる必要があります。 (すでにコンピュータにいれば大丈夫ですlocate locatedb
!)
私のDebianコンピュータでは/var/cache/locate/locatedb
答え2
inodeとsuperblockについて尋ねているようです。望むより:http://www.linfo.org/superblockそしてen.wikipedia.org/wiki/Inode
ファイルシステム自体は、その中に含まれるすべてのファイルとディレクトリを追跡するために「マスターファイル」を必要としません。だから私はそうではないと言いたいです。「ディレクトリ構造とそのディレクトリに含まれるファイルに関する情報を保持するLinuxシステムの共通ファイル」。
ただし、inodeとスーパーブロックを使用すると、ファイルシステムはすべてのファイルとディレクトリを追跡します。しかし、分散して分散された方法です。