サイバー甲子園 参加レポート

SECCON実行委員会/JNSAが主催するサイバー甲子園という大会に@_N4NU_と一緒にscryptosとして参加して優勝してきた.

@_N4NU_のwriteup: http://nanuyokakinu.hatenablog.jp/entry/2015/11/08/102550

出題された問題の1行write-up

TRY FIRST (sample 10):

flagをsubmitするだけ

Find from binary (binary 100):

32-bit ELF.a=1; if(a>2) { print(flag); }なのでeipを適当に飛ばすだけ

Guess the flag (binary 200):

32-bit ELF. 入力がflagかどうかをチェックするバイナリで,.rodataのバイト列と0xffをxorしてflag

Where is the flag (binary 300):

.NET binary.限られた環境でしか起動できないらしく,静的解析だけでは解けなかった.

Easy decrypto (crypto 100):

base64 decodeしてflag

Simple crypto (crypto 100):

rot13を戻すだけ

Access to restricted url (network 100):

pcap.httpのパケットでBasic認証のパスワードがflagになっている

Invisible message (network 100):

特定の条件を満たすtcpパケットのidentificationの1バイト目を繋げるとflag

Follow the mail (network 300):

smtpのパケット.メールの本文を読んでflag.zipのパスワードをguessしておわり

National flag (programming 100):

turtleで国旗を描画するpythonのコード.適当に書き換えて動かして画像検索しておわり

BaseBall (programming 300):

野球のシミュレーション.気合で書いておわり

RPN (programming 200):

逆ポーランド記法の式で,リテラルがnum(基数)の形になっているので適当にパースして投げるだけ 答えをlong_to_bytesしてflag.

Invisible flag (web 100):

flag.phpにアクセスすると30x redirectで飛ばされる.response bodyにflag

Login (web 100):

気付いたらflagが出ていた.よくわからない

Your browser is not supported (web 200):

UAがnetscapeだとflagが出るっぽい.引っ張ってきたUAのリストからランダムに選んで投げさせていたら解けた

Excel (unknown 100):

excelの各セルのbackground-colorを消すとflagのascii artが出てくる

Invisible (unknown 100):

pngのstego.stegsolveなどに投げておわり

PDF (unknown 100):

flagが黒塗りで隠されているpdf.読むだけ

Who is author (unkown 200):

適当にgoogle検索して投げるだけ

Excel, Find from binary, Guess the flag, Invisible message, Follow the mailは@_N4NU_に解いてもらった.

まとめ

優勝はやるだけ,難易度の割に問題数が少なく差を付けにくかった.