読者です 読者をやめる 読者になる 読者になる

Shi0shishi0

とても眠い。

CTF for ビギナーズ2015東京に参加しました。 #ctf4b

CTF セキュリティ

CTF初挑戦

昨日は東京電機大で開催されたCTF for ビギナーズ2015東京に参加してきました。初めにCTFとは何ぞや、という感じの講義があり、その後でバイナリ、ネットワーク、ウェブの3科目の講義が各1時間前後で続きました。そして講義終了後に実際にCTFへ挑戦するという流れになっていました。

初めてCTFというものに挑戦しましたが、かなり熱中して楽しめました。これはハマる人が多いのも頷ける… 今回はあまり得点できなかったので、次の機会はもっと頑張りたいです。

講義の中で講師の方々が「Writeupを書くまでがCTF」とおっしゃっていたので(問題の解法とかをまとめることをwriteupと呼ぶのも初めて知りました)、かなり雑にですが数問ほど解き方まとめてみます。解き方がわからなかったところは他の方のWritipを読んで復習しなきゃ…!

 Writeup

問1. 練習問題

・表示されたボタンを押してFLAGを確認・入力するだけのやつ

 

問2. Can you login as admin?
UsernameとPasswordを入力するフォームが表示されているので、そこにSQLインジェクションを仕掛けてFLAGを取る問題でした。

Usernameのとこに【' OR 1=1 --】と入力するとFLAGが表示されました。

 

問5. SQL Injection Level2

こちらもSQLインジェクションの問題となっています。上の問題と違うところは、パスワード欄でのORの利用が封じられていたことです。そこで前半の講義資料にもあったUNION句を使ってインジェクションします。

 username : guest
 password : 'guest' union select 'admin

と入力することで、FLAGを発見できました。

 

問6. Universal Web Page(笑)

英語版と日本語版が用意されているWebページからFLAGを抜き出すという問題。自分では全く手が出なかったのですが、PHPbase64変換機能を使うことで解けるとか。

普通にindex.phpを指定してページ内を読もうとするとコメントアウト部分が読めないようになっているので、http://172.20.1.60/web500/?lang= 以下に php://filter/convert~(正しい表記忘れた…)を追記して開くとWebページをエンコードしたものが保存でき、それをデコードしてやると中のFLAGが読めるそうです。

 

問7. Insecure Protocol
ネットワークの問題で、[Find the Insecure Protocol, and "TCP Follow Stream" !!]の一文とpcapファイルが与えられています。WireSharkでファイルを開き、TCP Streamで通信の内容を確認します。

172.20.1.50というIPアドレスに対して、TELNETで通信が行われているのが確認できます(IDとパスワードもわかる)。コマンドプロンプトからその通信と同じように172.20.1.50に対してtelnetコマンドを叩き、IDとパスワードを入力するとFLAGが見つかりました。

 

問9. File Transfer Protocol 

こちらもネットワークの問題で、pcapファイルが与えられていました。

キャプチャをひと通り眺めてみると、FTPで何かのファイルを転送しているのがわかります。そこでWireSharkのフィルター機能を使い、ftp-dataで通信をフィルタリングします。

通信の中身を見ると、PKから始まるデータを見つかりますが、これがzipファイルの印になります。なので通信をzip形式で保存し、解凍します。すると中にtxtファイルが入っていて、[ _not ]とだけ書かれています。
この通信が行われていた前後を見ると、[ ctf4b{This_communication_is ]という文字列と、[ encrypted.} ]というFLAGの断片のようなものが見つかります。この3つをくっつけると、FLAGになりました。

 

バイナリ問題は一問目だけ解いて、あとは手を付けずという感じになってしまいました…次はバイナリにもちゃんと挑みたいし、ネットワークとウェブの問題ももっと解けるように頑張ります。