360 CTF

周末去了趟重庆,跟一群小伙伴们参加360办的第二届全国大学生信息安全技术大赛(名字洋气但不够风骚),我跟菊爷、伟哥一队。

周五下午很晚才到重庆。因为前期安排不是很妥当,所以吃饭、住宿和路径问题没能马上解决。我们先坐轻轨到四公里,然后从四公里走到五公里,想赶快打个车去重邮,但是发现十三个人想在晚高峰打车真是不太容易,所以决定还是先吃晚饭。不知为何去了一家很经典的串串店:小却面积大、破、人多、热、顶棚是塑料、门口有水沟。一进门就看到一屋子女生,超过了30个,这种情况我已经好多年没见到了,因此诧异的尖叫一声。吃的并不是很爽,一来太辣,二来串串不是很好,吃得没感觉,我觉得我吃了超过一百五十串,还是没怎么饱。

串串店门口是某个我现在忘了名字的大学,门口人来人往车水马龙,瞬间又想起了我上的真不太算大学。顺利打到车之后去重邮签到,一路上欣赏了重庆独特的高低起伏和桥下明亮的城市夜景,很快就到了。志愿者们撤了,白进去一趟,在里头还帮一个正在上实验课的大一女生看了看她写的C语言程序,改了改代码风格。之后徒步找旅馆,周五晚上大学生们都要做事儿,所以想订房间太不容易,一路找一路走,经历各种曲折之后大家分开了住,我跟伟哥、堵哥住了一个三人间。虽然很累,不过还是像往常,稍微一忙就到一两点才能睡觉。

比赛第一天是做题,不过分类比较奇特,加密解密、网络协议、web、逆向和取证。开始后我做逆向,伟哥做加密,菊爷做web。他们两个做的题太坑,分别是没人做出来的题和我们到最后也没做出来的题,逆向题太简单,清理了清理思路就搞定了。接着我又看了看其他的10分题,伪造iphone6访问,按理说改User Agent就可以了,试了试无结果;又看了看数据包分析的,找了半天没发现key;加密的js没结果;web收邮件写验证码的没结果;然后就老老实实去做逆向第二题了,没想到还是很简单,不过估计也是我和出题人想法比较一致,所以直接OD里头nop和改内存就搞定了,根本没用IDA看是怎么回事儿。又回去看那几个,还是搞不定,就去做逆向的40分题去了。菊爷在数据包中找到了key,我们又加了10分,之后交了那个思路和大胆去做就能瞬间做出来的40分逆向题的flag,我们就80分了,维持了一阵子前三名,然后就被大家一直超,掉到了五六名。

中午发了盒饭和香蕉,味道还可以,赶快吃完就又去看那几个坑题了,排名靠后真是蛋疼,还得老想着怎么往上赶,做起题来都不那么得心应手了。突然伟哥发现80分的那个逆向题也是个坑,居然写了程序有解密部分,直接IDA里抠出来稍微一改就得到了key,瞬间爆到了160成了第一名。欢喜之情溢于言表。然后就是各种低潮。iphone6始终不知道怎么伪造,找某个重要验证信息数据包啥也分析不出来,web题菊爷都搞到了边缘就是差那么一点点。很快我们就被超过去了,又掉出了前三位。时间越来越少了,这时候机智的菊爷想起了万能的Google。然后就是马上找到了TPLINK某固件的类似原题,搞到了80分,排名提升后信心大增,情绪大好,回头看了一下后面队做出了一个20分的加密题和10分的取证题,然后我们又相信我们也能做出来,然后就搞定了30分。最后时刻,我们决定把iphone改成iphone6试试,没想到真的得到了key,又涨了十分。快没时间了,我还在纠结为什么搞出来的rar不能正常解压,最后三分钟急成狗了,但还是没搞定。第一天只有290,位列第三。不过第一天最大的成功就是成功的成了开题的人,率先刷到第五层,打开160的逆向题,阻击了所有人做160的题,因而虽然我们没做好,其他人也毫无机会拿大头。现在想想还想笑呢,哈哈哈。

晚上回去一边痛惜一边憧憬,希望第二天靠菊爷来个逆袭。我一直等到两点半看欧冠,不得不说,真是可以载入史册的惊心动魄的决赛。马竞上半场靠卡西失误攻进一球,然后利用拼抢和钢块一样的整体让皇马九十分钟毫无建树,补时阶段,西蒙尼点燃球迷激情,替补席准备庆祝马竞首个欧冠冠军,我缩着坐等睡觉。九十二分钟皇马获得一个角球,莫德里奇主罚,神奇的事情发生了,拉莫斯头球攻门,皇马绝杀!比赛被拖入加时!我兴奋的扔掉了被子狂吼一声,重新坐起来看加时,贝尔马塞洛C罗加时赛各进一球,皇马赢得第十次欧冠冠军,结束了十年的等待;脱衣庆祝的C罗结束了五年的守候。

看完颁奖典礼,突然感觉我感冒了,浑身发热头疼欲裂,赶紧睡觉。睡了两个小时,头疼疼醒了,也八点多了,洗了个澡就出门去比赛了。

第二天实战攻防,我拖着沉重的脑袋去休息室等着开门,王姐问了几个电话,我也迷迷糊糊的没啥印象。开始比赛后,还是在肾上腺素的作用下抵消了一些痛苦,尤其是菊爷分分钟拿到17的shell。歇了会儿看着菊爷准备提权,改了改打算删除别人shell和做快照的脚本,然后帮着删一下别人传上去的shell,伟哥更是直接把upload的目录写权限去了。不过还是失策了,还有其他上传点,提权也一直不成功,搞别的又没心思,就这样蛋疼到了吃中饭。饭也没好好吃,又开始找各种exp,还是不能提权,到了下午,好多队伍开始得分,我们还在找exp。其他队伍得分越来越多,我们排名也逐步往下掉,直到最后挂不住了,掉到了第四。一点多的时候我跟菊爷说,好好搞,还有一半时间呢。没想到三点多还是类似的话,菊爷好好搞吧,赶紧提个权,还有两个小时呢。妈的搞了一天就拿了个shell的10分,第一的已经拿了140了。

后来我觉得要被冻死了,外面下着雨,又感冒发烧,穿的又少,浑身难受。到了三点半,直到接近四点,还是只有10分,提权不仅无望,shell还被人删了,反弹的也被人kill了,其他的洞又被人补了,真是绝望到了极点。

我已经放弃了,趴着歇了会儿,菊爷也无奈了,伟哥也开始分析那个数据包不管shell了。谁知道为啥,不到十分钟,绝望情绪一扫而空,伟哥登进了16的机器,而且直接就是root权限!当时我就振奋了,就跟看到拉莫斯攻进那个头球一样的感觉,脑袋也不疼了,也不觉得冷了,赶紧叫人给加了20分。机智的伟哥做出了第二天最伟大的决定:iptables。我们赶紧加了个用户,传了公钥(这个很爽有没有?),然后iptables禁用222端口。返回home发现有人写了个txt文件i am in,当时就吓尿了,赶紧查用户,还好没人进来。又做了一些常规工作,然后就是找后门在哪儿了,最后一个小时也算是有事情做,还能YY一下拿个kindle或者pad也不错。想想iptables和我们唯一控制的16就爽,这尼玛怎么能这么机智?

手握跳板机感觉就是不一样,菊爷搞200的目标机也更有信心,虽然时间已经不够了。比赛结束后,我看了一下分数,发现我们有可能是第一名。统计跳板机的控制权时,居然只有三个队伍控制了主机,16是我们唯一控制的,17被两个队瓜分,补漏洞得了140的队没控制一个机器,连第二天一分未得的第一天第一名都没超过。我们以30分的微弱优势搞到了第一。简直太戏剧了,差点儿狂笑出来。憋屈了一整天,总算是最后有了笑一笑的理由。

结果还是不错的,拿到了希望的名次,也有机会去决赛耍耍。虽然奖金变成了奖品,而且还是感觉很傻逼的三星某型号手机,但总的来说还是不错,基本填补了最近的各种不爽,也学到了不少东西,涨了不少姿势。还有,iptables真是不错,有时候就是需要手快,还要相信永远不要放弃和宇宙间所有人品总和为零这两条亘古不变的定理。