この大会は2016/11/26 0:00(JST)~2016/11/28 0:00(JST)に開催されました。
今回もチームで参戦。結果は1400点で666チーム中124位でした。
自分で解けた問題をWriteupとして書いておきます。
Black Suprematic Square (trivial web)
ソースを見ると、表示されない画像を読み込んでいる。
<img src = "http://i.imgur.com/YyHPw50.jpg" width=0>
この文字列がフラグ。
aima0AiwahsidupaiToehoong1PhieruqueivahphieKah7uceetair9aiGae1eSsaedoo4becooShohhu8eifahXi7EJoh2gaephechei5chiP9
Find The Gobblewonker (trivial network admin web)
OpenVPNで接続する。問題のURLにアクセスすると、フラグが表示されていた。
q8mvbp8sFNPpFj2dZkEkweNEFdBIuhVYkEr2brnj2qstJ3QbAtklx0imht8pdb2PafDIXs3Sxojl3m5q
Here goes! (trivial crypto recon)
図形の換字式暗号と考え、調べる。
http://yanazlatinneko.tumblr.com/post/119699418139/cadenthegrey-bills-symbol-substitution-cipher で対応表を見つけた。
FIXPROBLEMQUICKLYWITHGALVANIZEDJETS
Southern Cross (crypto)
ヴィジュネル暗号。http://www.geocachingtoolbox.com/index.php?lang=en&page=vigenereCipherSolveで復号してみる。全文は長すぎて復号できないので、途中まで切って復号する。鍵はBOLIVARであることがわかった。コードを書いて全文を復号してみる。
import string al_l = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' key = 'BOLIVAR' k_size = len(key) with open('crypt.txt', 'r') as f: data = f.read() count = 0 plain = '' for i in range(len(data)): enc_c = data[i:i+1] if enc_c in string.uppercase: key_c = key[count%k_size:count%k_size+1] index = al_l.index(enc_c) - al_l.index(key_c) if index < 0: index += 26 plain += al_l[index:index+1] count += 1 else: plain += enc_c print plain
復号した結果、ストーリーのタイトルはSelected Storyであるとわかったが、これはフラグではない。問題に最後の部分にフラグがありそうなことが書いてある。・・・ということで最後の文がフラグ。
BOLIVAR CANNOT CARRY DOUBLE