picoCTFとは?
picoCTF is a free computer security education program with original content built on a capture-the-flag framework created by security and privacy experts at Carnegie Mellon University.
カーネギー大によって作られたセキュリティ教育用のコンテストサイトのようです。
問題を解いたりコンテストに参加することでセキュリティについて学ぶことができるそう。
ということで、セキュリティに関してなんもわからん状態からやってみた。
picoCTF
学ぶ
このページに必要な前提知識がまとまっていそうです。
長いので時間があるときに少しずつ読むことにして、とりあえず先に進みます。
問題を解いてみる
picoGymで実際の問題を解くことができます。
上の画像のように問題がパネルで表示されているので、解きたいものを押します。
初めてなのでとりあえず一番最初のObedient Catというものを解いてみます。
問題の確認
flagを含むファイルがあるので、そのファイルからflagを取得しろ、みたいな感じっぽいです。
ヒントの確認
ヒントは得点には影響しないみたいなので、全て確認してみます。
- そもそもヒントをどう使うかの説明。ターミナルにコマンドを打ち込むときには
$
の後に打ち込んでね、というもの。 - 今回対象にしているファイルの取得コマンドが記載されています。
-
man cat
とだけ書かれています。この問題自体がチュートリアルみたいなものなので、cat
コマンド使えるようになってねという意味もあるんじゃないでしょうか。
実際にやってみる
Ubuntu18.04LTSで実行しています。
ヒント2に従って、対象ファイルを取得します。
こちらはセキュリティソフトにはじかれたので、--no-check-certificate
をオプションで指定して実行しています。
すると以下のようにファイルが取得されます。
ls
コマンドでflagファイルが取得できていることを確認後、cat
コマンドでflagファイルを開きます。
すると、picoCTF{...}
の形式で探していたflagが表示されました。(答えは隠しています)
これを先ほどの問題パネルの入力欄(下の写真赤枠)に入れて、submit flag
を押すと...通りました。
この問題はこれだけのようですが、問題ごとに色々頑張って何とかしてこのflagを取得しろっていうものっぽいです。
終わり
カテゴリ分けされているので練習はやりやすそうです。
webshellがどうも問題ページ上で使えるっぽいので、もしかしたらローカルに落としてこなくてもいいのかもしれない(未確認)。
あとこれまでシェルをあまり使ってこなかったので、単純に学ぶことが多そうで良い。