Proverb
flag.txtを何とか開きたい
権限がありません。
proverb
を実行すると、proverb.txt
内のことわざをランダムで出力します。
CTF慣れてる人は、この時点で「proverb
を使ってflag.txt
を何とか出力させる」という方向性を考えると思いますが、私は無理でした。
writeupをチラッと見て、シンボリックリンクが重要になるというヒントを得ました。
シンボリックリンクとは?
シンボリックリンクとは、ファイルやフォルダを物理的に移動させることなく、異なる場所からのアクセスを可能にするものです。
ここで重要なのは、リンクさせるファイルの名前を適当に変えることができることです。
自由に行動できる場所を求めて
preverb
などのファイルを移動することが全くで来ません。
ホームディレクトリで自由に動ける場所を探してみます。
/tmp/
が自由に動けそうです。これは一般的な知識であり、知っておくべきことです。
ここでprovervb
を実行するとFailed to open proverb.txt
と出ました。
これからわかることは、proverb
内でprover.txt
は相対パスで指定しているという事です。
例えば、./proverb.txt
のように設定してそうですね。
シンボリックリンクをやってみる
/tmp/
上でシンボリックリンクをしてproverb.txt
を作成し、proverb
を実行しましたが、Failed to optn proverb.txt
と言われてしまいました。
適当にmkdir p
をして、/tmp/p/
上で同様の事をすると、出来ました。
なぜ?
原因がいまいちわかりませんでした。
chatGPTとGeminiにも聞きましたが、よくわかりません。
writeupを見てみると、/tmp/
でサブディレクトリを作る指示がありました。この問題固有の問題かもしれません。
まとめ
/tmp/は誰でも読み書きできる特殊な場所であると覚えておきます。
すぐ消されることには注意する必要があります。