ホーム » スタッフ » 斉藤徹 » ファイル操作演習 回答編

2020年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

ファイル操作演習 回答編

Linux の操作演習をやったけど、興味を持った人はそれなりに楽しんでくれたみたい。ひっかけのネタになっていた部分を抜粋して簡単に説明。

基本は、以下のようにディレクトリに入って、ファイルだったら表示…の繰り返し。

$ cd /home0/Challenge/1-CTF.d/Task1
$ ls -al
0ReadMe brain concussion persons
$ cat 0ReadMe
...
$ cd brain
$ ls
company  concussion  of-brains
$ cat *
...
$ cd ../concussion
$ ls
...

Task4では、特殊なファイル名が入れてあるので、注意が必要。

$ cd /home0/Challenge/1-CTF.d/Task4
$ cd dir1
$ cat 'file name.txt'   空白を含むファイル名は''で囲む
:
$ cat ./--file.txt      -で始まるファイル名はコマンドオプションと
                        勘違いされないように ./ をつける。

dir3 の中には、シンボリックリンク(Windowsでいうところのショートカット)があるので要注意。

$ cd ../dir3
$ ls -al
lrwxrwxrwx 1 t-saitoh t-saitoh    2 Dec 20 10:45 Task4 -> ..
-rw-rw-r-- 1 t-saitoh t-saitoh   39 Dec 20 10:47 ZFile4

# cd Task4 をすると、1つ上のディレクトリへのシンボリックリンクがあるので
# 無限の繰り返しになる。

Task5 には、unix の基礎的なセキュリティトラップを体感してもらう。

$ cd /home0/Challenge/1-CTF.d/Task5
$ ls 
0ReadMe  Bomb
$ cd Bomb
$ ls                   接続が切れてしまう。

実は、今回 Login すると、環境変数PATH の設定に不備が仕掛けてある。また Bomb のディレクトリ内には、ls , cat といった名前で、強制的に接続をするコマンドを置いてある。この仕掛けにより、Bomb ディレクトリで ls を実行すると、接続が切れてしまう。

対策1

Bomb ディレクトリに入らずにファイルを探る

$ cd /home0/Challenge/1-CTF.d/Task5
$ ls Bomb
0ReadMe  Bomb
$ cat Bomb/cat
$ cat Bomb/flag

対策2

実は、環境変数 PATH (利用者がよく使うコマンドが保存されているディレクトリ一覧)が “.:/usr/bin:/bin” となっている。先頭に . が入っているため、カレントディレクトリの中に ls といったコマンドがあると実行してしまう。

環境変数 PATH にカレントディレクトリ(.)が入っていると、悪意のあるプログラムを実行させたい人が、危険な実行プログラムを置き逃げしてあると、実行してしまう可能性が高い。このため、(.)無しにすべき。

$ export PATH=/usr/bin:/bin
$ cd /home0/Challenge/1-CTF.d/Task5/Bomb
$ ls
cat  flag  less  ls  lv  more  nkf
$ cat flag
FLAG{DoNotTouchBomb}