Code Monkey home page Code Monkey logo

ctfx's Introduction

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 lengthy 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
  • Unlockable challenges (In order to see them requires you to solve another challenge (from any category you choose))
  • Admin Panel with competition overview, IP logging, user/email search, exception log (that includes the users that caused them)
  • Create/edit front page news
  • Markdown support for challenges and categories and news
  • hCaptcha support
  • Configurable caching
  • Caching proxy (like Cloudflare) aware (optional x-forwarded-for trust)
  • TOTP two factor auth support
  • 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-mysql php-curl php-mbstring mariadb-server (or mysql-server instead of mariadb-server)

- Secure mysql server

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

- Setup CTFx

  • Clone this repository's contents to /var/www/ctfx/
  • Make the folder writable writable

- Setup nginx

  • Copy the recommended nginx config install/recommended_nginx_config to /etc/nginx/nginx.conf - For the fastcgi_pass entry, you must change the PHP version to your current one.
  • Make sure to restart nginx after changing the config!

- Setup MySQL

  • sudo into mysql, then run the following queries:

  • CREATE DATABASE ctfx CHARACTER SET utf8 COLLATE utf8_general_ci;

  • GRANT ALL PRIVILEGES ON ctfx.* TO 'ctfx'@'%' IDENTIFIED BY 'ctfx_pass'; - Make sure you change the default db username and password!

  • exit mysql

  • sudo mysql < install/sql/001-ctfx.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 ctfx; UPDATE users SET admin=1 WHERE id=1;

Installation Tips:

  • 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 CTF_START_TIME and 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.

ctfx's People

Contributors

milkdrop avatar haalomc avatar

Stargazers

Andres avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.