サイバー甲子園 参加レポート
SECCON実行委員会/JNSAが主催するサイバー甲子園という大会に@_N4NU_と一緒にscryptosとして参加して優勝してきた.
@_N4NU_のwriteup: http://nanuyokakinu.hatenablog.jp/entry/2015/11/08/102550
サイバー甲子園 接戦! 残すところ1時間 #SECCON pic.twitter.com/MTpMZzzlFL
— SECCON CTF (@secconctf) 2015, 11月 7
サイバー甲子園 優勝しました #SECCON pic.twitter.com/KG0YVMcad7
— Ikumi Shimizu (@_193s) 2015, 11月 7
出題された問題の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_に解いてもらった.
まとめ
優勝はやるだけ,難易度の割に問題数が少なく差を付けにくかった.