网鼎杯线下赛
网鼎杯线下赛
初赛的时候因为和江苏的比赛时间冲突了所以我没打, 不过各位大佬们都很强, 最终以线上赛第一名的名次进入了半决赛.
线下赛两天, 第一天半决赛: 200个队分为4组, 两组的前15和两组的前十, 一共50支队伍进入决赛. 第二天决赛. 两天的比赛形式都是攻防, 第二天还有三个密码学题目.
Day0
我们提前一天到了北京, 也提前做了不少准备
- 肖神的pwn框架
- 一航的awd框架
- 一航的反弹shell管理器
- 考虑的比赛时候没有网的情况我们带了一台服务器并在上面搭建了wooyun镜像站, ctf-wiki, hackmd等等工具以备不时之需.
- 虽然比赛之前并没有说主办方提供不提供流量, 但是肖神还是准备了一些流量混淆的脚本.
比赛场地在国家会议中心, 听这个名字就很高大上, 看到之后也确实很宏伟. 同个时间的ISC大会也在这儿举办.
_isc大会_1536289845_29653.jpg查看地图发现国家会议中心离鸟巢和水立方非常近, 当然要前去看看了. 上次来北京也想来水立方看看, 没想到从奥体公园西门进去竟然还要门票, 所以就远远地看了一眼. 这次才发现可以直接从地铁站奥林匹克公园站下车后进去, 也不要门票. 里面人不是很多, 可能因为需要过安检, 那些广场舞大妈们懒得过来吧233, 近距离看到鸟巢还是比较震撼的, 可以看到里面的建筑结构非常复杂. 而水立方就是远看觉得特别有意思, 有点像肥皂泡泡. 我们都特别想摸一摸, 但是走进了发现我们和水立方之间隔了个'护城河', 肯能建造的时候就考虑到大多数人都会有摸一摸的冲动吧233, 不过水立方近距离看就感觉不怎么好看了.....有点像把蛇身上的鳞片放大了的感觉(飞神原话)233
感受一下巨型蛇鳞 适宜远观Day 1
第一天的一共四个题目, 一个web三个pwn. ssh是用密码连接, 长度都是8个字节, 不知道能不能爆破. 先连上去把题目下载下来. 这儿推荐一个非常好用的连接gamebox的工具, mobaXterm, 贼好用.
由于上次打国赛的时候我主办方提供的流量非常坑爹, 只有单方向的流量, 所以即使拿到流量也很难利用, 所以暑假我自己用c写了一个代理, 可以实现转发攻击者和题目之间的流量并记录下来. 然后我就把部署了一下这个代理. 因为之前没有在攻防环境中测试过, 所以我前2个小时几乎都是在修改代理的问题. 顺便看看gamebox有没有丢分什么的, 期间一航已经可以打别的队了, 肖神也找到了一题的漏洞, 在写exp. pwn一直都没有被打过. 等到代理终于可以使用的时候我就把部署了上去, 等别人送流量过来了. 果然过不了多久pwn题就开始被打了, 然后就是分析流量呗, 再patch一下. 可能是因为这次比赛主办方没有提供流量的原因, 所以抓到的流量非常干净, 几乎没有见到混淆流量, 利用起来自然也非常爽, 稍微改一改就能打别人了. 第一个抓到流量的题目是一个brain fuck的题目, 我们很快就根据流量patch并写了exp开始打别的队. 不就肖神也把堆题做了出来, 然后我们就可以打三个题目了. 但是还有一题一直没有抓到流量, 我还以为是这题大家都没有做出来, 但是看大屏幕发现是有队伍在打这个题目的. 连到gamebox上才发现并没有部署代理......重新部署一下果然一会儿就抓到流量了. 然后就是四个题目都在打, 慢慢上分, 最终进了决赛. 最后半个小时我们干的活主要就是手交flag, 某春秋的提交flag的平台太坑了.....每个队伍提交两次flag之间的间隔最少是2秒, 一航的框架没有考虑到这个坑爹情况, 导致不少flag都没有提交上.
比赛是从早9点到下午5点, 中午的午餐不得不吐槽一下, 两个冰冷的汉堡....一根冰香蕉, 一盒冰酸奶...... 我感觉我第二天拉肚子的原因应该就怪这顿午饭.....
最终成绩是第8, 比赛结束后公布所有组的分数, 被eee战队的分数惊到了, 9万多分!!(初始分2万) 这大概就是降维打击吧2333
比赛结束之后还是很开心的, 毕竟进了决赛. 我们社团的一位学长也代表公司来打比赛, 晚上一起吃了个饭, 看各位大佬谈笑风生.
晚上会宾馆我们把框架中提交flag的部分改了改, 避免出现第一天的那种情况. 我们的目标是前30
Day 2
第二天比赛就三个小时, 早8点到11点. 拿到题目连上去后还是三个pwn一个web, 而且有一个pwn就是原题.....第一天的brainfuck, 某春秋也太敷衍了吧.........难怪刚开始一分钟就看见大屏幕上就流量打全场了, 还以为遇到了神仙..... 后来看到知乎某个回答大概知道原因了: 放个原题不就能刚开始就打嘛, 大屏幕上那烟花放的多好看, 要是像第一天那样开始1, 2个小时大家都在做题, 分数都没得变化, 高端观众当然会觉得无聊啦. 而且另外两道pwn题也都是栈溢出..... 被某春秋安排的明明白白.
我这次比赛的干的就是运维的活儿2333, 几乎没有看题目. 还是部署的代理, 但是发小有一个题目部署代理之后会被判断为服务异常, 可能我的代理有什么问题. 我也没时间改了, 而且这个题目尝试patch几次都会被判定为服务异常....所以被打了好久, 最后肖神才把patch成功. 非常难受, 一共被打了大概790多分. 要是早点patch的话最后说不定能进前十五.
期间肖神做了一个pwn题, 我们根据流量打了一个题目. 启飞在做密码学, 需要字典进行爆破, 但是坑爹比赛竟然没有网.....我比赛之前胡乱下来一个什么ctf工具包, 里面有一个字典, 但是有649KB....所以根本跑不完.....事后发现用kali里面的rockyou字典1分钟不到就能跑完.....而且我就有一个kali.........做出来的话就有800分, 肯定能进前15......mmp这学期我一定好好学密码学!!! 这个垃圾字典也必须删掉!!!!
最后一个小时我们就慢慢上分, 第一始终是eee, 不过分数没有第一天那么夸张了, 在15000左右(初始10000), 我们从20多慢慢往上爬, 期间一直没有被打过, 等爬到第16的时候突然被打了!而且是3个题目几乎同时被打了! 十分诡异, 赶紧看了下进程, 发下有个shell, kill之, 再看看代理, 也没什么问题, 很是纳闷,但还是尝试改了一些地方, 这轮结束后就掉到了第18名, 离结束也没有几轮了.大概也不可能进前15了. 新一轮开始之后我们并没有把其中一个patch部署上去, 但是竟然就没有被打了??? 精准控分666啊.
最后名次第17, 虽然达成了目标, 但还是感觉很遗憾....就差一个字典.....难受的一批
总结
这次比赛最大的收获就是在真实环境中测试的我写的代理, 并且发挥了一定作用.
主要还是暴露了许多问题
- 比赛时交流问题, 发生或一个人已经可以打别的队了, 另一个人还在看这个题目的问题, 交流很重要
- 分工问题, 最好有个专门的运维, 否则大家一起patch的时候非常混乱, 还有初始问题备份等问题
- 框架还是有很多需要完善的地方, 比如提交flag
- 我的代理偶尔还是会出现一些问题, 需要完善
总的来说能和队友打这场比赛并最终取得这个成绩还是比较满意的, 不会的东西还是很多, 感兴趣的东西也有很多, 所以努力学习吧
半决赛第八