初CTF

なんか超ビッグなデータが降ってきた。(Not ビッグデータ - Wikipedia
)

だうんろーよヽ(´ー`)ノ

展開ヽ(´ー`)ノ

f:id:everysick:20140622201606p:plain

20GB...まじかよ...

開くヽ(´ー`)ノ

Emacs

開こうとしたら落ちた。無理。

SublimeText

頑張ってくれたけどメモリ足りなくなるし無理。


で、分割することにした

split -b 100000000 flag small


よいっしょっと。


適当なのを開いてみると、ぬるぬるした文字ばっかりだったので
flagのありそうなファイルを探す

p = [*'a'..'z']
base = ""

p.each do |head|
  p.each do |tail|
    file_name = path + "/small" + head + tail
    target =  File.open(file_name, "r+b").read
    base = target.hash if (head + tail) == "aa"
    puts file_name if base != target.hash
  end
end


一個だけ出てきた

/MISERARENAIYO/bigdata/smallea


中身げろげろしてもらう

target =  File.open("/MISERARENAIYO/bigdata/smallea", "r+b").read
puts target


いかにもエンコードされてそうな文字出現

AQEHnwD0Dwt0ASEMHUD9CDb=

ここまで15分ヽ(´ー`)ノ

ここから1時間ヽ(´ー`;)ノ


デコードできない。
base64に何か引っ掛けてるのはわかるんだけど、
如何せん知識が無いので進めない。

...

...

...

手をあげる



私「rot13 is 何」

シーザー暗号のなんとからしいことがわかった。なるほどね。そんなものもあるのか、始めて知った。


よいしょする

>>> print 'AQEHnwD0Dwt0ASEMHUD9CDb='.decode('rot13')
NDRUajQ0Qjg0NFRZUHQ9PQo=

>>> print 'AQEHnwD0Dwt0ASEMHUD9CDb='.decode('rot13').decode('base64')
44Tj44B844TYPt==


おっ、それっぽいの出てきたじゃん。

>>> print 'AQEHnwD0Dwt0ASEMHUD9CDb='.decode('rot13').decode('base64').decode('base64')
���|��>


...は?

>>> print 'AQEHnwD0Dwt0ASEMHUD9CDb='.decode('rot13').decode('base64').decode('rot13')
44Gw44O844GLCg==


おっ、こうか。

よしよしflagは....

>>> print 'AQEHnwD0Dwt0ASEMHUD9CDb='.decode('rot13').decode('base64').decode('rot13').decode('base64')
ばーか



結論:CTF楽しい