All Projects → fausecteam → ctf-gameserver

fausecteam / ctf-gameserver

Licence: ISC license
FAUST Gameserver for attack-defense CTFs

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language
Makefile
30231 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to ctf-gameserver

Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+8473.68%)
Mutual labels:  game-server, gameserver
pigame
Just a game server template for Erlang/OTP.
Stars: ✭ 25 (-34.21%)
Mutual labels:  game-server, gameserver
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (+873.68%)
Mutual labels:  game-server, gameserver
ARK
ARK is a lightweight, agile, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 411 (+981.58%)
Mutual labels:  game-server, gameserver
Game Server Configs
A repo of game server configuration files used by LinuxGSM
Stars: ✭ 157 (+313.16%)
Mutual labels:  game-server, gameserver
jwEngine
A cross-platform C++<->lua server quick solution
Stars: ✭ 226 (+494.74%)
Mutual labels:  game-server, gameserver
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+1623.68%)
Mutual labels:  game-server, gameserver
ructfe-2019
RuCTFE 2019. Developed with ♥ by HackerDom team
Stars: ✭ 24 (-36.84%)
Mutual labels:  ctf, attack-defense
Nettygameserver
使用netty4.X实现的手机游戏分布式服务器,支持tcp,udp,http,websocket链接,采用protobuf自定义协议栈进行网络通信,支持rpc远程调用,使用mybatis3支持db存储分库分表,支持异步mysql存储,db保存时同步更新reids缓存。 使用ExcelToCode工程,将excel数据生成java类和json数据字典,DictService直接读取json,减少数据字典部分代码。使用game-executor工程,增加游戏内的异步事件全局服务, 支持事件sharding,均衡的异步执行事件逻辑
Stars: ✭ 1,203 (+3065.79%)
Mutual labels:  game-server, gameserver
Distributed game server
java,gameserver,distributed,vert.x,游戏服务器
Stars: ✭ 8 (-78.95%)
Mutual labels:  game-server, gameserver
ForcAD
Pure-python distributable Attack-Defence CTF platform, created to be easily set up.
Stars: ✭ 77 (+102.63%)
Mutual labels:  ctf, attack-defense
Flag-Capture
Solutions and write-ups from security-based competitions also known as Capture The Flag competition
Stars: ✭ 84 (+121.05%)
Mutual labels:  competition, ctf
phdctf-2017
PHDays Online CTF 2017. Developed with ♥ by Hackerdom team
Stars: ✭ 22 (-42.11%)
Mutual labels:  ctf, attack-defense
Linuxgsm
The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
Stars: ✭ 3,063 (+7960.53%)
Mutual labels:  game-server, gameserver
Attack-Defense-Platform
A framework that help to create CTF Attack with Defense competition quickly
Stars: ✭ 23 (-39.47%)
Mutual labels:  ctf, attack-defense
Kbengine
A MMOG engine of server.
Stars: ✭ 4,714 (+12305.26%)
Mutual labels:  game-server, gameserver
hitbsecconf-ctf-2021
HITB SECCONF EDU CTF 2021. Developed with ❤️ by Hackerdom team and HITB.
Stars: ✭ 17 (-55.26%)
Mutual labels:  ctf, attack-defense
Dolphin
**pigame** is a game server template for Erlang.
Stars: ✭ 23 (-39.47%)
Mutual labels:  game-server, gameserver
fhq-server
This is an open source platform for competitions of computer security.
Stars: ✭ 33 (-13.16%)
Mutual labels:  competition, ctf
Ctf Writeups Public
Writeups for infosec Capture the Flag events by team Galaxians
Stars: ✭ 331 (+771.05%)
Mutual labels:  competition, ctf

CTF Gameserver

This is a gameserver for attack-defense (IT security) CTFs. It was originally written for FAUST CTF 2015, but is designed to be re-usable for other competitions.

What's included

The gameserver consists of multiple components. They may be deployed separately of each other as their only means of communication is a shared database.

  • Web: A Django-based web application for team registration and scoreboards. It also contains the model files, which define the database structure.
  • Controller: Coordinates the progress of the competition, e.g. the current tick and flags to be placed.
  • Checker: Offers an interface for checker scripts, which place and retrieve flags and test the status of services.
  • Submission: Server to submit captured flags to.
  • Lib: Some code that is shared between the components.

For deployment instructions and details on the implementations, see the READMEs of the individual components.

Related projects

There are several alternatives out there, although none of them could really convince us. Your mileage may vary at this point.

  • ucsb-seclab/ictf-framework from the team behind iCTF, one of the most well-known attack-defense CTFs. In addition to a gameserver, it includes utilities for VM creation and network setup. We had trouble to get it running and documentation is generally rather rare.
  • HackerDom/checksystem is the gameserver powering the RuCTF. The first impression wasn't too bad, but it didn't look quite feature-complete to us. However, we didn't really grasp the Perl code, so we might have overlooked something.
  • isislab/CTFd appears to be de-facto standard for jeopardy-based CTFs. It is, however, not suitable for an attack-defense CTF.

Another factor for the creation of our own system was that we didn't want to build a large CTF on top of a system which we don't entirely understand.

Design principles

The software will probably only be used once a year for severals hours, but it has to work reliably then. It will hopefully continue to be used by future generations. These requirements led to the incorporation of some principles:

  • Non-complex solutions: Keep the amount of code low and chose the less fancy path. That's why we use the built-in Django admin interface instead of writing a custom admin dashboard – it'll be good enough for the few people using it.
  • Few external dependencies: Of course one shouldn't re-invent the wheel all over again, but every external dependency means another moving part. Some libraries you always have to keep up with, others will become unmaintained. We therefore focus on few, mature, well-chosen external dependencies. That's why we use a plain old Makefile instead of Bower for JavaScript dependencies and Django's built-in PBKDF2 instead of fancy bcrypt for password hashing.
  • Extensive documentation: This should be a no-brainer for any project, although it is easier said than done.
  • Re-usability: The gameserver should be adjustable to your needs with some additional lines of code. An example for such customizations can be found in the faustctf-2015 branch of this repository.
  • Scalability: We couldn't really estimate the load beforehand, nor could we easily do realistic load-testing. That's why the components are loosely coupled and can be run on different machines.

Licensing

The whole gameserver is released under the MIT (expat) license. Contributions are welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].