ふるつき

v(*'='*)v かに

SECCON福島「サイバー甲子園」に行ってきたよ

 SECCON福島大会サイバー甲子園に参加してきました。ptr-yudaiと共にinsecureというチームで出場しました。

まとめ

 2位でした。これによって、SECCON intercollegeの参加権を獲得しました。

write up

数問解きましたので憶えている範囲でのwrite upを行います。問題名とか適当です。

[unknown] 100pt invisible flag

pngが渡されます。問題文は「pngが壊れているのかな?」みたいな文章でした。開いてみると確かに真っ黒でしたが開けたので壊れたわけではないはず→stegsolveで解けました。FLAGはSECCON{INVISIBLE_FOR_HUMAN}でした。画像だったので手打ち。

f:id:Furutsuki:20151108174021p:plainf:id:Furutsuki:20151108174029p:plain

[unknown] 100pt PDF

なんかPDFがあります。「黒塗りには気をつけよう」みたいな問題文。PDFを見るとなんかいろいろ文章があるんですが、ところどころ黒塗りになっています。SECCON{______}みたいなのを見つけたので、そこを選択してコピー&ペッと適当な場所に。するとFLAG書いてありました。上から黒く塗っても意味ないよという話。SECCON{kuronuri_chuui}

[crypt] 100pt ?

ptr-yudaiに言われて解いた。rot_13するだけ問題。

[binary] 200pt reversed porland

ptr-yudaiに「解ける?」って言われて苦戦してた。こういうのに時間を取られるからだめ。問題としては、逆ポーランド記法で書かれた長い数式(しかも数が大きい)が渡されて、それをごにょごにょする。

  1. 数式の各数値は2〜36進数で記述されていて-?\w+([0-9]+)って感じになってる(つまり、数値をあらわす数桁の後に弧で括られた基数がある)。まずはこれを揃える。都合よくpythonのint関数は36進数まで対応している(なぜなら、0-9A-Zで36だから)。ところで-がつくやつをちゃんとパースしなかった結果最終的な数値がアでアだった。

  2. 直したら数式を計算する。ポーランド記法にしてschemeに突っ込めばいいやと思ってたけど甘かった。結局pythonのコード引っ張ってきた。

  3. 結果を16進にする。そして1byteずつに区切って英字としてみる。

pythonのソルバ書いたのであげときます。

SECCON福島大会 サイバー甲子園 Programming 200pt

[binary] 300pt baseball

甲子園ということで本家に肖りて、野球の問題。ncで接続した先のゲームをシミュレーションする。これに時間を取られている間にptr-yudaiが問題を解きまくってた。

SECCON福島大会 サイバー甲子園の Programming 300pt問題

雑感とか

  • CTF前はHSPばかり書く一週間を過ごしていたので解けなかった