Trend Micro CTF Asia Pacific & Japan 2015オンライン予選に参加してきた
Trend Micro CTF Asia Pacific & Japan 2015|トレンドマイクロに参加してきました。
いつものRoute9というチームで参加し、結果は154位(得点したチーム総数359チーム)でした。
真ん中ちょい上、なんともコメントしにくい感じ。またがんばるぞー。
てことで、参加記録をかねて解けた問題のwriteupを書いておきます。
Analysis - offensive100
アクセスするとsign_in, sign_upがあって、sign_inするとアクセス一覧みたいなのが表示されるサイト。
cookieにuserが入ってたのでなんか怪しいなーと思いつつ、時間経過で値が変わったりするので無関係かなーとも思いつつうだうだしてました。
するとメンバーがこんな一言を
さっそく見た人で試してみることに。
$ curl http://ctfquest.trendmicro.co.jp:8888/95f20bb7856574e91db4402435a87427/signin -X POST -d "username=1&password=1&fuel_csrf_token=272c193c32f2e4cc7be0b7153027d5147bcc6c34c2aa9a3582729c3da89658" -i HTTP/1.1 302 Found Date: Sat, 26 Sep 2015 10:50:01 GMT Set-Cookie: user=96d9d1268c579e6a6f707c274b09d830f80a6dfa; path=/
cookieにuserの値を突っ込んでアクセスすると鍵が取れました。
Analysis - Defensive100
問題文のリンク先をDLするとvonnという実行ファイルが出てきます。
チームメンバーの曰く
・・・とのこと。何気にこの記事書いてて気づいたけど、答のflag聞いてNEEEEE orz
Analysis - Others100
壊れたPDFが対象の問題。
ヴューワによっては壊れてても無視して開いてくれちゃいました(もちろん答えはわからないけど)
PDFのフォーマットなんて調べたこともないし、できれば楽したいなーと思い、rubyのorigamiというパーサを使ってみると。
2.1.5 :001 > require "origami" 2.1.5 :002 > puts Origami::PDF.read("fix_my_pdf.pdf").pages [info ] ...Reading header... [info ] ...Parsing revision 1... [error] Breaking on: "stream\nx\x01\xED..." at offset 0x1581 [error] Last exception: [Origami::InvalidObjectError] Cannot determine object (no:13,gen:0) type [info ] ...Parsing xref table... [info ] ...Parsing trailer... [info ] ...Propagating types... 0x1581はここのstreamの箇所 13 0 obj stream ... endstream
なんかobject no13のところが壊れてると教えてくれたのでそこを見てみる。よしわからん。
しぶしぶPDFのフォーマットをぐぐったところ、辞書句?を指定する必要があるとのこと。
13 0 Rを参照しているところを検索すると以下のような部分がヒットしたので、もうこれは画像で決まりだろうと勝手に思い込み(100点問題だし...)
10 0 obj << /ProcSet [ /PDF /ImageB /ImageC /ImageI ] /ExtGState << /Gs1 15 0 R >> /XObject << /Im1 11 0 R /Im2 13 0 R >> >> endobj
何を書けばいいかわからないので、同じように画像を指定をしている箇所から辞書句をコピペしてみました。
13 0 obj << /Length 14 0 R /Type /XObject /Subtype /Image /Width 305 /Height 50 /ColorSpace 16 0 R /Intent /Perceptual /SMask 17 0 R /BitsPerComponent 8 /Filter /FlateDecode >> stream ...
これでフォーマットチェックは通るけどpdfを開いても壊れた画像が見えるだけ。何が足りないのかわからず悶々としてると・・・
適当に画像幅を変えてたら答えが見えたんだって┐( ̄ヘ ̄)┌
ちゃんと解決してないけど、解けたから良しで先に進みましたとさ。