CTFx is a CTF Platform forked from mellivora, that focuses on low memory footprint and low server CPU usage

Overview

CTFx

CTFx is a CTF Platform forked from mellivora, that focuses on low memory footprint and low server CPU usage. It has a futuristic interface that's optimized for slower hardware, meaning that there is no bulky Javascript running in the background, nor length CSS stylesheets. CTFx improves on the mellivora CTF engine by the UI redesign and the addition of new features.

CTFx home

Features

  • Unlimited categories and challenges with configurable dynamic/static scoring
  • Challenge hints
  • Set custom start and end times for any challenge or category
  • Unlockable challenges (In order to see them requires you to solve another challenge (from any category you choose))
  • Local or Amazon S3 challenge file upload
  • Admin Panel with competition overview, IP logging, user/email search, exception log (that includes the users that caused them)
  • Create/edit front page news
  • Arbitrary menu items and internal pages
  • BBCode Support for challenge and category descriptions, news, etc ...
  • Optional solve count limit per challenge
  • reCAPTCHA support
  • User-defined or auto-generated passwords on signup
  • Configurable caching
  • Caching proxy (like Cloudflare) aware (optional x-forwarded-for trust)
  • Segment analytics support
  • SMTP email support. Bulk or single email composition
  • TOTP two factor auth support
  • CTF Time compatible JSON scoreboard
  • And more ...

Looks

CTFx has a slick modern interface. See the gallery.

Performance

CTFx is extremely lightweight and fast. See the benchmarks.

Installation

- Install the following dependencies

  • nginx php-fpm php-xml php-curl php-mysql php-mbstring php-pear composer mysql-server

- Secure mysql server

  • Run the command mysql_secure_installation and remove anonymous users, disable root login and remove the test database

- Copy repo contents to /var/www/ctfx/

  • Run composer install --no-dev --optimize-autoloader under /var/www/ctfx
  • Make the folder writable writable

- Setup nginx

  • Copy the recommended nginx config install/recommended_nginx_config to /etc/nginx/nginx.conf

- Setup MySQL

  • sudo into mysql, then run the following queries:
  • CREATE DATABASE mellivora CHARACTER SET utf8 COLLATE utf8_general_ci;
  • GRANT ALL PRIVILEGES ON mellivora.* TO 'mellivora'@'%' IDENTIFIED BY 'mellivora_pass';
  • exit mysql
  • sudo mysql < install/sql/001-mellivora.sql
  • sudo mysql < install/sql/002-countries.sql

- Create Admin User

  • Register your admin account on the website (and enable 2FA Authentication preferably)
  • Logout of your account
  • sudo into mysql and run the query USE mellivora; UPDATE users SET class=100 WHERE id=1;

Installation Tips:

  • You can change the /var/www/ctfx path, but if you do so, you must update the MELLIVORA_CONFIG_PATH_BASE variable in include/config/config.inc.php
  • If you have issues with executing PHP you should check if the php-fpm .sock file present in the nginx config exists.
  • It is recommended that you change the default database password, and if you do so you must also change it in include/config/db.inc.php
  • You can change the homepage to your liking by modifying htdocs/home.php. Make sure to also change the css rules in htdocs/css/mellivora.min.css for #ctfx-main-logo and .main-intro-text, if you want a different overall style.
  • You might want to change the MELLIVORA_CONFIG_CTF_START_TIME and MELLIVORA_CONFIG_CTF_END_TIME variables in include/config/config.inc.php, so that each new challenge you create will have these times set as default.

License

This software is licenced under the GNU General Public License v3 (GPL-3). The "include/thirdparty/" directory contains third party code. Please read their LICENSE files for information on the software availability and distribution.

devel-branch TODO

Features

  • Improve customization process and options
  • Better installation experience (w/ quick option to create an admin account)
  • Support No-JS users
  • Add [code] BBCode
  • Pagination and table styles, better admin dashboard

Fixes

  • Improve UX for dynamic pages / dynamic content
  • Generally improve UX in the admin interface
  • Make challenge / category availability dates more intuitive

Reminders

  • Remove bloat from composer when pushing to production
  • Remove testing db
You might also like...
An easy-to-use, free and open source laravel e-Exam platform to build your online course right away.
An easy-to-use, free and open source laravel e-Exam platform to build your online course right away.

➡️ Website | Documentation | Community ⬅️ Laerx Get detailed information about your clients, exams and courses to create an effective report and track

A platform to create documentation/wiki content built with PHP & Laravel

BookStack A platform for storing and organising information and documentation. Details for BookStack can be found on the official website at https://w

Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP

Audio Video Platform AVideo is a term that means absolutely nothing, or anything video. Since it doesn't mean anything the brand simply is identifiabl

Satu platform demo ringkas untuk rujukan Basic PHP

praktisphpmysql Satu platform demo ringkas untuk rujukan Basic PHP Demo https://legoom.biz.my/praktisphpmysql/ Belajar Koding Kemasukan Mei dan Septem

mTube is a simple video sharing platform built with Laravel.
mTube is a simple video sharing platform built with Laravel.

mTube is a simple video sharing platform built with Laravel. Create personal channel share videos online with friends and family.

 Known: a social group platform
Known: a social group platform

Known: a social group platform Installation One-click Known sites If you want to install on your own web space, we recommend Reclaim Hosting, which in

Donation Platform for WooCommerce unleashes the power of WooCommerce for your online fundraising, crowdfunding & crowdsponsoring

=== Donation Platform for WooCommerce === Contributors: flinnn Tags: donation, donations, crowdfunding, fundraising, woocommerce Requires at least: 5.

The API & platform builder, build your apps 10x faster even more, it's open source & 100% free !
The API & platform builder, build your apps 10x faster even more, it's open source & 100% free !

The API & platform builder, build your apps 10x faster, even more. It's open source & 100% free ! Try live demo Why badaso ? 100% FREE - No need for e

A markdown based blogging platform

OpenPub V2 OpenPub is a markdown based blogging system. The original version of OpenPub was too experimental in the way it handled everything. This ma

Owner
Milkdrop
Mostly on GitLab now https://gitlab.com/Milkdrop
Milkdrop
Collection of CTF Web challenges I made

My CTF Web Challenges This is the repository of all CTF challenges I made, including the source code, write-up and idea explanation! Hope you like it

Orange Tsai 2.4k Jan 3, 2023
This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 4.0.0 platform. It allows you to query some other server information

QueryServer This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 4.0.0 platform. I

Thành Nhân 1 Jul 6, 2022
Simple and lightweight OOP wrapper for PHP's low-level sockets extension (ext-sockets)

clue/socket-raw Simple and lightweight OOP wrapper for PHP's low-level sockets extension (ext-sockets). PHP offers two networking APIs, the newer stre

Christian Lück 321 Dec 15, 2022
Learning Management System made in vanilla PHP to learn core concepts and usage of some basic utils

Learning Management System Learning Management System made in vanilla PHP to learn core concepts and usage of some basic utils. Report Bug · Request F

TitansLab 1 Mar 30, 2022
WebDirStat is a disk usage utility for web servers written in PHP

WebDirStat is disk usage utility for web servers, it’s a single PHP file that gives you statistics about disk usage inside a specific Directory ordered by size, in a form of a simple tree table.

Yassine 2 Oct 14, 2021
The platform allows you to manage articles, comments, tags, categories, and users for a blogging platform.

Laravel Blogging Platform The platform allows you to manage articles, comments, tags, categories, and users for a blogging platform. The project was w

Khaled Farhat 6 Oct 2, 2022
Self-hosted platform to keep and share your content: web links, posts, passwords and pictures.

Shaark is a self-hosted platform to keep and share your content: web links, posts, passwords and pictures. All of your data can be private, public or

MarceauKa 482 Dec 30, 2022
Centreon is a network, system and application monitoring tool. Centreon is the only AIOps Platform Providing Holistic Visibility to Complex IT Workflows from Cloud to Edge.

Centreon - IT and Application monitoring software Introduction Centreon is one of the most flexible and powerful monitoring softwares on the market;

Centreon 14 Dec 16, 2022
A Blogging Platform with a built-in Feed Aggregator. Built with AngularJS and Laravel.

ReMark ReMark is an open source publishing platform built with the informed content creator in mind. It works as: A blogging platform A feed aggregato

Ren 4 Nov 1, 2019
Discussion (forum) and Q&A platform. Community based on PHP Micro-Framework HLEB.

Agouti Discussion (forum) and Q&A platform. Community based on PHP Micro-Framework HLEB. Ideas We like the classification system based on labels (tags

AgoutiDev 59 Dec 22, 2022