SECUINSIDE CTF Quals 2013杂记

Secuinside CTF Quals 2013

Secuinside是韩国人办的信息安全比赛,在ctftime.org上排名很靠前。这次应该算是我第二次参加类似的比赛,不过这类做题形式的还是头一次。

我对安全这块几乎什么都不了解,本来得知这个比赛的讯息后打算在两周内好好突击学习一下的。无奈俗务缠身,困于各个deadline、物理实验、数电实验等。不过这学期活动倒是不少,Google GDG两次活动(一次是Google I/O直播之夜,都是签到就有T恤衫,相当不错),Lisp中国地区爱好者技术沙龙、编程之美、Yahoo Hack Day等。直到比赛前两天才有时间开始学习Web安全方面的知识,https://pentesterlab.com/web_for_pentester.html提供了非常不错的学习资源,我开始接触SQL injection、directory traversal这类东西。下载到的iso是可引导的,可以用qemu启动。图方便我用了tap方式让虚拟机接入网络。另外Linux下有个工具lxc,增强版的chroot,可以构建单独的网络环境,对于这个应用来说应该会更方便,以后再了解了。

周五21:00多比赛开始,binary类题目远多余web类题目,web类题目我也几乎处于蒙昧状态,在强力的队友面前我能做的就是打杂了。不过在三天的学习过程中倒是了解到了不少工具:

  • sqlmap
  • ettercap
  • whatweb
  • knocker

赛后反思一下,我对Web安全方面的知识储备严重匮乏,也没有接触过MySQL和PHP,以后要好好了解一下。这段时间要抽空看一下这几本书:《SQL Injection Attacks and Defense》、《Web 前端黑客技术揭秘》、《白帽子讲WEB安全》。

比赛持续48个小时,今天21:00结束。我们blue-lotus战队最后是第7名,据说要制作战队队衫了,好期待啊!

Shell utilities技巧

  • plain hexdump: xxd -p
  • reverse operation of plain hexdump: xxd -r -p。 我想到的是个比较笨的方法:ruby -ne 'print $1.scan(/../).map{|x|x.to_i(16).chr}.join。 不得不说逻辑稍烦杂的one-liner得数Ruby最好用,Smalltalk的cascading函数调用风格比Perl还好用不少。
  • tar的选项--to-command,这个是第一次见。
  • curl{}[]有特殊含义,-g可以关掉这一特性,-r可用于指定Range: HTTP首部。