セキュリティ・コンテストに出た話。Hill)×2を解く形式のCTF。KoHは30pts./10minで点数が入る。獲得することができた。これによりinsecureは今年もSECCON2017決勝大会に参加させていただけることになりExploit頑張らなきゃ感(去年のSECCON決勝ではExploitによるKoHメインだったが全然歯が立たなずJeopardyだけ解いて帰った)が増えた。Write-ups簡単な分をやってKoHとかは手伝いをやった感じ。風邪とかいろいろあってあんまり効率が出なかった感。自力で(?)解いた分だけ記載。残りは他のチームメイトをあたってほしい。してWrite-upを書くと自分がいかに解いてなかったがわかって辛い。EncryptionのWrite-upを誰か書いてほしい。Misc.素数を数えろ7桁で最大の素数を答えるだけ。素数一覧で検索すれば数分でいける。Misc.諜報機関は基本?情報セキュリティの3要素とは。@theoldmoon0602氏が答えを言ってくれたけど検索すればみつかった。この答え、twitterにあったらしい。情報戦に初めて立ち会った瞬間であった(完)。Misc.君(脆弱性)の名は脆弱性の名前は何か。ともにいくつかのCVEを投げてくる。CVEはCVE-2017-13077からCVE-2017-13088まで順番に出てくる。これは余談だけど自分は誰かがtweetしてた”有線NYAN”が好きなのでslackのstatusに採用してる。Binary.ファイル名を探せフラグは簡単だ。言われファイルをDLして解凍するとxor.pngとmasks.pngが出て来る。2枚をGIMPに投げつけるとあっさりフラグの文字列が浮かんでくる。これ圧縮ファイルを既知平文攻撃して回収するかという話があったけど、実はpassもなんにも掛かってなかったので問題違いか勘違いかあるいはその両方だった。Binary.ボスを倒せncすると名前を訊かれたあとplayerとbossでHPを減らし合うゲームが開始される。問題文に「とあるゲームを見つけたが、ボスがあまりにも強すぎて一切倒せそうにない。」とあるように通常では倒せないようになっている。名前を訊かれる所で”1”を50個ぐらい突っ込んでやるとやたらHPが増えてplayer,bossともに825307441とかになる。OverFlowだと思いいくつ突っ込めばいいかなと思い以下のスクリプトを作成。pwntools入れるのにやたら時間かかったりncできなくなったりして無駄に時間食った。最終的に21個”1”を突っ込んだ所でbossのHPが49(これは”1”のasciiコードを10進に直したもの)になりそのままゲームを続行することで勝利したところでフラグがprintされた。バイナリくれて解析する、ってパターンでもよかったのになあと思った。"1"*iprint("payload:A*"+str(i))sock.sendline(payload)sock.stream()VPNとproxyを構築してしまったこの大会、オンサイト参加とオンライン参加の両方を実現するためにVPNを利用したようなのだけど、接続元IPでフィルタ掛かってると思い(実はそれは去年だけの話で、今年はなかった)、1日目と2日目の間に奈良高専会場である情報処理研究会のサーバと自前のVPS(このサイトのサーバ)をproxy越しにVPNに繋ぐ構成ができないかと漁ったが最後大会が終わった。miwpayou0808.info(VPN)Proxyはsquidを使用した。yumで入れてconf書いてsystemdでservice起こすだけ。confは以下を参考にした。https://qiita.com/tosier/items/30297afb6ffbd4567eb5https://qiita.com/pcnikki/items/404329f9ad9cb6e235d4VPNはここにそのままあったので使った。ブリッジ設定は上手く行かなかったのでなしにした。LinuxでVPNに接続できるまで待っていただけてありがとうございました。チームメイト達に感謝。決勝のときは体調不良じゃないようにしたいです。休日出勤の多い弊学の御方にも感謝。