搭建一个全新CTF靶场平台
0x00 前言
由于疫情原因,在家闲着无聊,给学弟学妹搭一个CTF平台,所以去研究研究CTFD,但是我没有在我可怜的阿里学生机上跑起来,无奈之举,立志要写一个CTF平台。写了一个前端还算糊弄的CTF平台。可能还有好多BUG没有发现,但是目前主要功能还是可以使用的,适合举办中小型比赛!
网站架构:
前端:Materialize CSS + jQuery + 部分Bootstrap,采用 Html + Ajax 动态刷新页面
后端:纯PHP 数据库:Mysql
推荐使用Linux 别问为什么 我也不知道
0x01 功能
1. 动态Flag(格式为: 动态Flag头{md5(用户Key+题目随机)})
2. 注册模式为:无任何注册验证、手机注册验证(互亿无线接口)、邮箱注册验证
3. Web和Pwn题目完全支持Docker分发 做到一人一容器 一人一FLAG
4. 动态分数和静态分数:动态分数题目初始分值为 1000 PT 随着做出的人越多 分值越低,最低分10分,计算公式:1001-1000/(1.01+2.1^(12-解题人数))。静态分值,可在后台题目中自己设定。
5. 前几血加分功能:可以设置 前几名解题的加分功能
6. 邀请码功能:注册时 是否需要邀请码 后台可以随机生成 有时效的邀请码。
7. 平台两种模式运行 日常练习 和 限时竞赛
0x02 特性
1. 简单方便,不需要任何服务和额外配置 只要 lnmp或lamp环境即可(PHP7.0以上)
2. 保证公平:详细的排名规则,首先按分数排名,分数相同时先做出题的人排在前面,不受字典序影响
3. 动态FLAG和Docker分发 完美配合 做到一人一容器 一人一FLAG
4. 更多功能等待挖掘......
0x03 页面
这是一个毫无功能的首页
只是一个 公告 可以是解题提示 也可以是赛项说明
绿色的是已经解答的题目 橙色为 鼠标经过的颜色
透明系的 解答拟态窗
不会画图的学生
可以放置在线工具和下载工具的Github地址
这是我的个人中心
不知道有没有万能密码的绕过的登录窗口
注册需要输入邀请码 ~
部分隐私已经打码
附上一个丑陋无比的大屏奥利给
0x04 数据库
使用Mysql 数据库 其他的我也不知道了
0x05 细节
以前没学过PHP,同过写这个平台才发现单引号和双引号的功能那么大,到现在我也搞不懂
数据库查询比较多,因为丑陋大屏要1秒请求一下数据库 想办法这个得优化优化 代码繁多
0x06 缺陷
缺少 商城兑换功能、 缺少WriteUp功能、缺少队伍功能、缺少等等等
0x07 代码
太多了,就略去吧~
0x08 挑战
欢迎大家来战 CTF平台地址:点我进入
如果你连邀请码都得不到 你怎么是一个合格的Web(wang wang wang)
Hint:Console 你猜你猜 你猜猜猜
0x09 最后
最后的最后,我们都是孩子。