WTF!?

オンサイトCTFのWriteupとか書いてく.

サイバー甲子園 Write up

SECCONのintercollegeの予選のサイバー甲子園に参加した.

2015.seccon.jp

193sと一緒にscryptosとして出場し優勝した.
自分の解いた問題のwrite upを書く.

Find from binary - Bin 100

fileコマンドを叩いてみると

questions: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0ae2183f11574b7147809273d6069958ff21eb70, not stripped

とりあえずIDAに喰わせてみる.

f:id:nanuyokakinu:20151108101921p:plain

絶対通らない分岐先でflagを表示する処理に入っている.
バイナリ書き換えたりデバッガで値変えたりするという方法もあるが,
動かすのが面倒だったのでIDAのHex Viewからコピーしてsubmitした.

flag: SECCON{Can U read me?}

Guess the flag - Bin 200

fileコマンドを叩いてみると

guess: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=f1a2e385b6a77f23bf5528c7303300309e8d827a, not stripped

IDAに喰わせてみる.

f:id:nanuyokakinu:20151108102003p:plain

fgetsで受け取った文字列にNOT演算を掛けて,
0x8048700にあるバイト列と比較して,32バイト一致していたらいいらしい.
bin100と同様にIDAのHex Viewからコピーしてpythonでゴチャゴチャやってflagを出した.

flag: SECCON{XOR_encryption_message}

XOR encription ……?

Invisible message - Net 100

pcapファイルが渡された.
HTTPの通信をしてるのでHTTPで受け渡しされたhtmlとか色々見てみるが,
どれも特に怪しい感じがしなかった.
しばらくpcapを眺めていると,パケットのヘッダー部分にSECC...という文字列が見えた.
よくよく見てみるとクライアントからサーバーへSYNを飛ばし,
SYN/ACKが帰ってきたらすぐにRSTする通信が度々行われており,
これにflagが乗っかっているらしい.

f:id:nanuyokakinu:20151108102055p:plain

wirwsharkの条件式の使い方がわからず,
これに気づいたのが終了15分前ぐらいで
調べる時間もなかったので目grepでflagを出した.

flag: SECCON{Data_is_included_NOT_ONLY_in_payload_but_also_header_field.}

これ絶対100ptsじゃないだろ……

Follow the mail - Net 300

pcapを開くとsmtpの通信があるが,
文字コードISO-2022-JPだったりUTF-8だったりしてそのままでは読めない.
Follow TCP StreamでShow data as Hex Dumpとし,
メール本文のバイト列をコピー,
バイナリエディタに貼っつけてテキストエディタで読んだ.
全部のメールを読むと,flag.zipがメールに添付されており,
zipを解凍するためのパスワードはseccon2015_takesako
zipの中身の文書を開く時のパスワードはtakesako_tessy_sonodam
とのことらしい.

取り敢えずpcapからflag.zipを取り出してseccon2015_takesakoで解凍した.
すると中から出てきたのは,またflag.zipだった.
出てきたflag.zipにfileコマンドをかけてみると.
flag.zip: Composite Document File V2 Document, No summary info
だった.
これは.docだったり.xlsだったりを指しているので,
flag.docとしてMicrosoft Wordに開かせ,
パスワードにtakesako_tessy_sonodamを入力するとflagが現れた.

flag: SECCON{Sending_File_Password_with_Followed_Mail_is_bogus.}

前にもTDUCTFでメールの問題が出たが, その時も人力でメール本文のバイナリを引っこ抜いた.
どうにかこうにか簡単にメール本文だけ引っこ抜くことは出来ないのだろうか.
イケメンパケリスト各位に教えて頂きたい.

Excel

エクセルファイルが渡された.
開いてみるとこんな感じ.

f:id:nanuyokakinu:20151108102232p:plain

多分,値の部分に何か隠れているのだろうと適当にセルを見た.
すると#が値に入っているセルがあったので色の付いたセル全体をコピーして,
「形式を選択してペースト」で値だけをペーストしてやると

f:id:nanuyokakinu:20151108102301p:plain

横幅を調整してやると

f:id:nanuyokakinu:20151108102311p:plain

flag: SECCON{NIRVANA_KA1}

エスパーやな

感想

Bin300ふぁっく