SECCONに出た

チーム竹田氏としてSECCON 2013 オンライン予選に参加した。竹田氏は終始LoLをしていた。

自分が何を解いたのか今となっては不明(ログインできない)なので覚えている範囲で。

Web200

こんな感じのICMPだらけのキャプチャファイルが与えられる。

ダメだこりゃ意味わかんねぇとか言いつつ眺めていたらそれっぽいデータを発見する(赤枠内)

f:id:misodengaku:20140127023615p:plain

明らかにPNGっぽいので手で切り出してPNGにしてみると文字の断片っぽい物が見える(画像紛失)。

続けてWiresharkを眺めていくと続きのようなパケットを見つける、しかし今度はPNGのヘッダがなく、かわりにHTTPのヘッダにContent-Rangeなるデータがくっついている。調べてみたらどうやらファイルを部分的にサーバから落としてくるときとかに使うデータらしいのでContent-Rangeを元に先ほど切り出したPNGファイルにデータを結合する。するとこうなった。

f:id:misodengaku:20140127024749p:plain

このまま地道に続けていけば画像としてちゃんとできあがりそうだけどこの時点でなんとか読めなくもないので無理矢理読んでsubmitしたら通った。

答えは"deadbeeffeedbad"。

Web300

以下のようなファイルが与えられる。

f:id:misodengaku:20140127025325j:plain

とりあえずバイナリエディタで眺めてみるとJPEGの終了を示すバイトのあとに怪しいデータがくっついている。

f:id:misodengaku:20140127025614p:plain

D4 C3 B2 A1...で始まるファイルはどうやらキャプチャファイルらしいのでWiresharkで開いてみるとin-addr.arpaあたりから想像できる通りDNS問い合わせの記録が出てくる。

f:id:misodengaku:20140127025907p:plain

133.242.55.252というDNSサーバに向けて10.95.133.134の逆引きをリクエストしているっぽいので同じ事をしてみる。

f:id:misodengaku:20140127030026p:plain

"You.G0t.a.H1dd3n.m3ss4g3.1n.Th15.DNS"という文字列が得られたのでこれをsubmitして終了。

これはまだ答えじゃないだろうなどと無駄な深読みをしていろいろ余計なことをしたけどまぁ無駄だった。とりあえずsubmitしたほうが得かも?

Web500

こういう問題。

f:id:misodengaku:20140127030543p:plain

1問目はともかく2問目からscript, alert, XSSという文字列が使えなくなる。

しかし各文字列を空白に置き換えしているだけのようなので「">alalertert("XSXSSS");<"」のような文字列を送信すると通る。

その後もXSXSSSを囲うダブルクォートをシングルに置き換えたり、シングルで通らなければダブルに戻したりしていくだけで最後まで行けた。

f:id:misodengaku:20140127031052p:plain

後半&とかが使えなくなっていたので正直微妙な解き方なのかなぁとか思いつつ"アイ・アム・アラート出したいマン!"をsubmitしてクリア。よくわからない問題だった。

Forensic100

詳細忘れたけど与えられたファイルからなんとかしてパンダの写っているTIFFを切り出してきて、EXIFを見ると撮影地が台北動物園を指すので答えは"Taipei Zoo"。

すぐに解けたのだけど初めの方では大文字小文字の区別か何かが厳格で通らず、結局メンバーのどみとり氏が同じ事をやってsubmitしてクリア。なんだかなぁと言った具合だった。

まとめ

今回とりあえず出てみるかぐらいの感じで適当に呼びかけてメンバーを集めてみたところいい具合に得意分野が分散したチームが出来た。

おかげで深夜あたりには一時的に3位まで上がることができた(最終的には7位になった)。

hack youの時もid:aki33524と話していたがやっぱりチーム戦の方が面白い、と思う。

同時に(得意分野でさえ大したスキルないのに)苦手な分野があることを痛感させられたのでとてもつらくもある。これからも頑張りたい。

追記(2014/01/29)

Writeupのまとめを見ていて思い出したけどその他200も解いていた。どうでもいい。