24 November 2020 - 字数统计：1243 - 阅读大约需要4分钟 - Hits: Loading...

# 记一次组织CTF的经历

by mayx

这是一篇创建于 天前的文章，其中的信息可能已经有所发展或是发生改变。

AI摘要

这篇文章讲述了作者作为协会部门部长参与组织一次CTF比赛的经历。虽然作者原本对CTF感兴趣并计划将其做成游戏，但实际负责运维时发现所使用的FBCTF平台存在很多问题，如已不维护、存在安全限制、部署复杂性（需要hhvm环境）以及国际化和数据库字符集设置上的问题。尽管过程中遇到了bug和新需求，PHP老师还是在短期内完成了额外任务。作者表示比赛还在进行，可能会有更多意想不到的事情发生。

- 起因
- 感受
- 经历

不会打我也能搞CTF(:-P)

#
起因

在一年前，我体验了一次CTF，感觉挺有意思的，而且为此我甚至计划做一个以此为基础的游戏。可惜人不行了，除了会咕咕咕其他什么都不行。

想不到就在最近，我不用参加CTF，而是直接去给其他人玩CTF的机会。最近我所在的协会要承包一次CTF的比赛，我作为协会部门的部长，自然也要参与其中。我最擅长的就是运维，所以在这次比赛，我就成为负责维护这次CTF平台的运维了。

#
感受

成为了维护CTF系统的人之后我对CTF的了解更深了，CTF系统的本质就是一个计分板加一台靶机，然后题就那么几种，像Web、PWN这种题需要靶机，其他的Crypto、Reverse、Misc啥的就只需要把题目放到一个文件服务器里就行了。另外计分板也非常的简单，就只需要一个判断结果是不是等于设定好的flag就完事了，然后根据答题情况给分就行了。

一般正式的赛事中好像flag都是动态的，每一个队伍的flag都不一样，然后每个队伍打的靶机也全部都是用docker隔离开的，像我们举行的这个CTF并不算专业，只能算是比较业余的。

#
经历

在这次CTF中，我本来是不想管平台的事情，如果我来搭建这个平台我可能会选择CTFd作为本次CTF的平台。不过这个CTF在我来之前举办过几次，他们使用的是由Facebook开发的FBCTF作为整个比赛的平台。我作为运维，肯定也不会去管程序上的事情，就干脆让他们去搞相关的事情了。

不过现实证明这是一个错误的决定，这个平台已经不维护了，虽然看起来确实挺好看，但是BUG也多，在这次比赛中给我们维护组带来了不少的压力。就比如说这个平台里的这一句话，给我们带来了很多麻烦。就这样的短短一句话，搞的正在运行的平台直接被迫停止运行。为什么呢？很简单，因为我所在的学校是中国啊，不允许这样的事情发生……

另外这个FBCTF也很迷，看代码不过就是普通的PHP而已，但是部署的时候用的软件和方式都和平时不一样。正常来说这种东西一个LEMP或者LAMP就能解决问题，而它非得要一个什么hhvm的环境，不过环境不是我搭的，它用啥我倒是不在乎。然而它的i18n有问题，在这一行没有加`tr`的那个函数，然后注册的时候显示就会出问题。有问题倒是没关系，大不了改了就行了，可是这个破玩意改了之后居然没反应？我搞了半天都没有搞好，后来发现因为它用了hhvm，这个东西会把php代码编译，然后直接修改代码就啥反应都没有，必须用`hhvm-repo-mode`才能更新代码😓……

其他的就是数据库，那个部署的人当时居然没改字符集，用的还是拉丁文的字符集，然后存储中文的时候就会各种乱码，怎么搞都搞不回来，不过程序里面好像没有受影响，所以也就算了。

还有就是领导的新需求，这也算是提前体验公司生活了，领导说要加一个功能，我肯定不会想着去接这个大坑，最后这个任务被派给了我们的PHP老师，不过老师确实专业，花了4个小时最终真的就搞成了，水平确实了的。

目前这次的比赛还没有结束，不知道还会出什么新的莫名其妙的事情，敬请期待吧~

tags: CTF - 记录 查看原始文件

#### 推荐文章

Loading...

上一篇：Mayx的产品测评
下一篇：在树莓派上体验piCore
想问这篇文章
召唤伊斯特瓦尔