第四,这是我在天枢第三次第四了。前两次第四自我感觉距离第三还有一定差距,但是这一次,我们却没有抓住拿到前三的机会。

day1#

第一天的 AWD 并不是传统的大乱斗 AWD,安恒创新性地采用了 flagserver 的形式,题目皆为 PHP 题目,使用 disable_functions 封堵了 RCE 的可能性。但攻击过程从原来的找 RCE 上马,变成了找 SSRF/LFI。没有了不死马和长连接,AWD 变得更加纯粹,体感也相对变好。最后 AWD 成绩第 5,后半段我去弄可信计算,Web AWD 拉了。

可信计算部分题目是基础的编程题。唯一的阻碍是没有 cube 框架的文档,很多数据操作只能靠直觉猜测。队里四个人我的编程能力最强,固然承担了可信计算部分题目。在离比赛结束还有近 3 小时时,我开始解可信计算题目。第二题中间人攻击第一次理解后编写程序出现了莫名其妙的问题,在比赛结束前 5 min 时,重新理顺思路,重新编写程序,成功通过这道题的两个 flag,比较惊险刺激。

day2#

3 个小时解题,1 个小时 fix,时间非常紧张。全场 8 道题,随机屏蔽一道。我们队被屏蔽了一道最简单的 PWN 题,血亏。Web 有 4 道题,两道 Python,一道 Java,一道套 Android 的 Web 题。其中 Android 题需要大量的逆向过程,在 fix 阶段看到服务端代码后题目很容易解出,但是想要在三个小时内逆向出加解密逻辑,非常困难。Java 题反序列化本机没有网络,很难准备环境。两道 Python 题都是简单题,但是我们最后只解出了 symlink 读文件那道,SSTi 那道已经 RCE 了,但是卡在 service 任意文件执行上。可惜比赛时心态问题,没有去尝试 service ../../bin/cat,而是很奇怪地尝试了个 service ../../flag,甚至 flag 文件应该是 flag.txt。

写在最后#

国赛管理是所有比赛中最为严格的。网络只能在统一的机器上访问,U 盘还被种马。。这样造成的不便是,很难配置某些题目的环境,同时,搜索效率低下。day2 为了找 service 的利用,跑了 4、5 次网络机,最后还是没有找到,实在是太可惜了。

从 CISCN 2019 Final 的二等奖第一到 CISCN 2021 Final 的一等奖第一,两次国赛都有遗憾。除了运气因素外、造成这一结果的原因更多的是自身能力和团队协作上的欠缺:如果 service 这个点不是我的知识盲区,也不会造成这个结果;同时如果我的队友能够帮我梳理利用思路,考虑从 service ../../flag 入手,尝试 service ../../bin/cat。

如果明年还有机会参与 CISCN 的话,按照规律应该是拿特等奖第一了吧。加油!