最近的二三事20150711

最近也很久没更新博客了,稍稍更新一下。

0x00

之前去听了geekpwn公开课第三期的分享会,见到了一些技术牛人,似乎看到了真正的安全界的圈子。主办方keen team让人膜拜得五体投地,做分享的flanker是94年的,前一年获得pwn2own冠军也是我交同届的,我在起跑线上已经被甩了十万八千里了。。。

0x01

最近为了准备我厂的安全技术大赛,做了些CTF的题目,CTF就是capture the flag,跟安全技术相关,通常有编程,解密,逆向,隐写等题目,就如有名的东大计算机系研究生入学题可以算CTF题的一种。

做了些网站上的练习了以后自然觉得要不就是题目太水,要不就是智商被压制,很难有棋逢对手的那种感觉,然后渐渐领会到了一些CTF问题的坑爹本质,很自然,考试题与现实中的安全渗透还是有十分大的区别的。

什么是CTF的坑爹之处呢?下面让我来举个例子:

题目来源:http://ctf5.simplexue.com/qwctf/1.html

Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l

对上述这段文字进行解密,可以,看到mjy这个字出现了很多次,所以根据词频猜测是单对单的置换密码,mjy表示the。(千万别问我这是怎么一眼看穿的,我也不知道)

于是我想试着替换一下,但是看到了第一行中,y这个字母会替换成e的话,就不对了,英文中e不会单独以一个词出现啊?于是我就在想是不是有单对多或者 多对多的关系。。。然后想了一个下午,没有想到。

后来我在网上搜到一个博客说了这题的解法,来源请点紫诺的博客

还是用了替换密码,到了一个网站去强行破解了一发,答案是:

2015062606483573

 

what the fuck?!原来他妈的前一半就是纯坑爹的,来干扰人的思路。不得不想起东大的那些入学题,因为通常如果比较难的解密隐写的题目,正确的解题方法通常可以规为这样一个步骤:

pic0

“解出一轮密文后,我能否判断这个密文的思路是不是对的?“就成了一个很大的问题。人的思路通常也是深度优先和广度优先相结合的,首先拿到一道题时大家肯定会开始开脑洞,得出潜在的n个算法0,然后分别检测得出来的密文1是否有解出答案的可能性,

(1)判断密文1是对的密文1(算法0正确),则以密文1为一道新题开始做。

(2)判断密文1是错误的,那剪枝,回到上一状态选择下一个算法0。

如果正确答案的密文1非常模糊,造成了判断错误,那对解题是一个致命打击,比如每一次选算法去解时有n种解法,按照上图显示可能多耗费的时间就是n的3次方级别的,也可能直接影响这道题做不做得出来。。。

0x02

以上这些,也有可能是我太弱了所以这样想。想象一下安全研究人员真正在研究某样系统存不存在某漏洞时,如果把它看成是一道题的时候,很有可能是没有答案的。(我就是没这个漏洞,你咬我呀?)

所以要不断地try and error,不光要try and error,因为有时error并不是真正的error,可能只是自己的评估方式有问题,而不是之前没有得出期望的结果。

说得比较拗口希望看到的人能懂。

我很希望有一个mentor能在我评估方式可能有问题,在自己解出的密文1该放弃还是该继续尝试时,给我点正面或负面的鼓励,但是现在我从事岗位的环境中,没有,前路一片漆黑。

之前有人说,我厂平台很大能给人很大的帮助,但是我似乎只感受到了大平台的信息传递慢,协作困难。我不否认技术主要靠自己,我也搞不清我到底是个平庸的人?还是要干票大事业的人? 只是希望,以后能加入个更有活力,少点限制的小型geek团队啊。我还是

希望自己能以技术为导向,而不用一些吹牛手段和trick来提高自己的KPI,光为了一个数据而不是做真才实干,我是会越来越瞧不起自己的。