Giter Club home page Giter Club logo

rootthebox's Introduction

>_ Root the Box

Code style: black Awesome

Root the Box is a real-time capture the flag (CTF) scoring engine for computer wargames where hackers can practice and learn. The application can be easily configured and modified for any CTF style game. The platform allows you to engage novice and experienced players alike by combining a fun game-like environment with realistic challenges that convey knowledge applicable to the real-world, such as penetration testing, incident response, digital forensics and threat hunting.

example

Screenshots & Demo

Additional platform screenshots and game examples.

RootTheBox DemoNote it may take a few seconds to wake up. Also, please don't change passwords on the example accounts, but feel free to register a new user.

  • Admin Username admin Password rootthebox
  • Player Username player Password rootthebox

If you’re using RootTheBox, please ★Star this repository to show your interest!

Features

  • Team Play or Individual Play
  • Real-time animated scoreboard, graphs, and status updates using websockets
  • Flag Types: Static, Regex, Datetime, Multiple Choice, File - w/options for case sensitivity
  • Options for Penalties, Hints, Attempts, Level Bonuses, Dynamic Scoring, Categories and more
  • Built-in team based file/text sharing and Admin game material distribution
  • Integrated CyberChef in tools menu
  • Chat support, with optional Rocket Chat integration
  • CTF Time compatible JSON scoreboard feed
  • Supports OWASP Juice Shop CTF export
  • Freeze scoreboard at a specific time allowing for end game countdown
  • Optional Story Mode - Supports intro dialog, capture Flag or Section dialog w/graphics
  • Optional Advanced Features, such as in-game botnets, "SWAT" players, banking (in-game) money, and wall of sheep displaying cracked passwords
  • Allows for unlocks and upgrades as users capture flags
  • Export and share Boxes/Flags
  • Multiple Language Support
  • Deploy in the Cloud, with Docker, or Direct.
  • Site Themes and other cool stuff

Setup

See the Root the Box Wiki

Platform Requirements

  • Python 3, PyPy or Docker.
  • Install scripts are for Ubuntu >= 18.04 (or Debian) but the application should work on any recent Linux, BSD, MacOS, or Windows system.

Questions? Problems? Feature Requests?

Create an issue on GitHub if you have any questions, problems or feature requests. We're happy to help you out with setup/configuration/edits and we're always brainstorming new ideas and looking for cool stuff to add!

Contributing

We welcome code contributions, please see our contributing guidelines on the wiki for more information.

rootthebox's People

Contributors

anarkyx01 avatar anthturner avatar arrow768 avatar askew avatar bkimminich avatar bmartin5692 avatar dadokkio avatar devluce avatar dnetguru avatar ehguille avatar ekstrah avatar eljeffeg avatar enki-- avatar eriner avatar f13 avatar garanews avatar iggykrajci avatar jinghli avatar lavalamp- avatar moloch-- avatar nakajiak avatar pedcremo avatar pointhi avatar shshzi avatar simon-hoegl avatar snake-poison avatar sporky avatar tinmartinet avatar und3rf10w avatar yolylight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rootthebox's Issues

Create Corporation error

http://127.0.0.1:8888/admin/create/corporation

Hit the create button:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1218, in _when_complete
callback()
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1239, in _execute_method
self._when_complete(method(_self.path_args, *_self.path_kwargs),
File "/root/RoottheBox/RootTheBox/libs/SecurityDecorators.py", line 63, in wrapper
return method(self, _args, *_kwargs)
File "/root/RoottheBox/RootTheBox/libs/SecurityDecorators.py", line 38, in wrapper
return method(self, _args, *_kwargs)
File "/root/RoottheBox/RootTheBox/libs/SecurityDecorators.py", line 93, in wrapper
return method(self, _args, *_kwargs)
File "/root/RoottheBox/RootTheBox/handlers/AdminHandlers.py", line 189, in post
game_objectsargs[0]
File "/root/RoottheBox/RootTheBox/handlers/AdminHandlers.py", line 197, in create_corporation
if Corporation.by_name(corp_name) is not None:
File "/root/RoottheBox/RootTheBox/models/Corporation.py", line 61, in by_name
return dbsession.query(cls).filter_by(name=unicode(name)).first()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 1212, in filter_by
return self.filter(sql.and
(_clauses))
File "", line 1, in
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 50, in generate
fn(self, *args[1:], *_kw)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 1177, in filter
"filter() argument must be of type "
ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement or string

rootthebox.cfg - Database section

Hello :)

In default configuration you have:

[Database]
# This is the database name we're connecting to
name = rootthebox

but in instalaltion procedure you wrote:
create database rtb;

I suggest:

[Database]
# This is the database name we're connecting to
name = rtb

Thank you for your time ;)
Regards

I tried and couldn't figure it out.

On registering a new player.

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1077, in _execute
_self.path_args, *_self.path_kwargs)
File "./handlers/PublicHandlers.py", line 153, in post
self.create_user(account, handle, passwd, rtok)
File "./handlers/PublicHandlers.py", line 177, in create_user
self.new_event.append(event)
AttributeError: 'RegistrationHandler' object has no attribute 'new_event'

ps let me know what is up with this. I tried for an hour, i guess i just don't know how this passes things back and forth.

pps, tell me how to fix it and let me get the code up date :)

New error.

./rootthebox.py --start
[DEBUG] 2014-03-07 22:35:36,516 - Configured to use MySQL for a database
[WARNING] 2014-03-07 22:35:36,794 - Possible misconfiguration 'domain' is set to 'localhost'
Traceback (most recent call last):
File "./rootthebox.py", line 155, in
main(parser.parse_args())
File "./rootthebox.py", line 120, in main
serve()
File "./rootthebox.py", line 42, in serve
from handlers import start_server
File "/home/sl3dge/RootTheBox/handlers/init.py", line 46, in
from handlers.AdminHandlers import *
File "/home/sl3dge/RootTheBox/handlers/AdminHandlers.py", line 41, in
from libs.Form import Form
ImportError: No module named Form

Changing ranking system

If I wish to rank the player based on the amount of $$ rather than flags, may I know how can I do that?

Creating Flag inside Box - Four oh Four!?!

Hello again, Im not sure if im doing something wrong but, with admin user:

Create > New Box [button Create Box] - OK
Create > New Flag > Static Flag > Select the box created before [button Create Flag] - OK

Then.... :

View & Edit > "Flags/Boxes/Corp." > (inside the box created before) [button Add Flags] > Create Text Flag

Answer:
404 - Four oh Four!?!
It looks like you typed a URL incorrectly, or were attempting to find something you ought not have access to.
The only other possibility is that I messed up some of the code, and that doesn't seem very likely.

Tokens do not revoke after being used

I'm not sure if this is a misunderstanding of mine or if it is a bug, from my perspective the Registration Tokens should be single use which means that once used they should be revoked. But I've tried to use a token twice and it worked.

./rootthebox.py --create-tables

After ./rootthebox.py --create-tables

I get:

Traceback (most recent call last):
File "./rootthebox.py", line 166, in
main(parser.parse_args())
File "./rootthebox.py", line 116, in main
create()
File "./rootthebox.py", line 49, in create
from libs.ConfigManager import ConfigManager # Sets up logging
File "/home/hanger/RootTheBox/libs/ConfigManager.py", line 51, in
class ConfigManager(object):
File "/home/hanger/RootTheBox/libs/ConfigManager.py", line 432, in ConfigManager
@property.setter
TypeError: descriptor 'setter' requires a 'property' object but received a 'function'

Same error with default config file.

python -V
Python 2.7.6

403 Error

For some reason, whenever I try to access admin features, I am given a 403 error. Any solutions?

Deleting Objects, imports and export function improvements

Previously notes but I figured I would open up an issue for it. As of right now there doesn't seem away to easily remove teams, boxes, or levels or to wipe everything away(apart from manually deleting the database). The import/export XML should also be extended to capture all aspects of the server with maybe even an option to save notifications that have been received and points awarded, essentially creating a snapshot of the board and all it's functions. As of right now the XML import function does not save assigned IPs for the boxes.

Trouble using the botnet

When I try to connect a botnet I get the following error:

[ERROR] 2014-08-18 15:54:36,719 - Uncaught exception in /botnet/connect
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/websocket.py", line 369, in _run_callback
callback(_args, *_kwargs)
File "/home/rtb/Desktop/RootTheBox/handlers/BotnetHandlers.py", line 87, in open
box = Box.by_ip_address(self.request.remote_ip)
AttributeError: 'module' object has no attribute 'by_ip_address'
[DEBUG] 2014-08-18 15:54:36,721 - Closing connection to bot at 10.0.2.6

Any idea what exactly could be causing this? I've tried to dig through the code and figure it out but have had no luck.

No graphs in scoreboard

Hello,

When I check the scoreboard I don't see any graphs. I've tried troubleshooting, with no luck. Is there something I'm missing?

Thanks

Mainframe Console. 'Report' command not found

root@mainframe:accounts# help

accounts - Get a list of active bank accounts
users - Get information on users
report - Generate a report on an account
transfer - Transfer funds from one account to another
intro - Change console intro animation

root@mainframe:accounts# report
Command 'report' Not Found

./rootthebox.py --create-tables

The newest version gives me an error:
./rootthebox.py --create-tables
File "./rootthebox.py", line 26, in
import nose
ImportError: No module named nose

Setup question

So I'm going to be using Root The Box to host a CTF event at my college in the spring semester.
Just have a few questions, if you can answer them!

  1. When assigning an IP to a "box" the box quite literally is a different computer on the network, such as a Windows XP or 7 computer, correct? If not, how would this be done?
  2. When assigning a flag to that box, does the file actually get sent to the box somehow, or do I have to put it on the computer manually?
  3. Do you have any suggestions for isolating the game from the rest of the college's network? The IT department was concerned with people hacking the wrong computers and screwing up the entire network.
    Thanks!

Missions

When you do not have any flags there are no missions even though i have missions in the system. There are just no flags in the missions but they do exist.

Improvements?

1) The description box doesnt accept "\r\n". Is it for some reason? My idea is put there like a short description of the scenario etc etc....

PS: if ou agree...I think the description text box should be able to visual resize for write purposes.

May be you can add a "box" like IPv4 and IPv6

2) What do you think about a team loose X percentage when tries to submit a flag that is not correct. It can be an option when you create the flag. Example:

Flag

Token: "Something"
Value: $100

If team try "xxx", then "yyy" and then "something", may be we can have a option to cut the value when they fail. Like the system already do when a second team submit a flag after the first team.

3) I have not been able to delete boxes and corporations. I already search in admin configuration..but nothing :(

Team Name UTF-8 Support

Hey there, your scoreboard is awesome!

-- That said: Adding a team containing UTF-8 Chars breaks the teams display:
(data is inserted in the database)

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1270, in _when_complete
    callback()
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1291, in _execute_method
    self._when_complete(method(*self.path_args, **self.path_kwargs),
  File "/srv/RootTheBox/libs/SecurityDecorators.py", line 63, in wrapper
    return method(self, *args, **kwargs)
  File "/srv/RootTheBox/libs/SecurityDecorators.py", line 38, in wrapper
    return method(self, *args, **kwargs)
  File "/srv/RootTheBox/libs/SecurityDecorators.py", line 93, in wrapper
    return method(self, *args, **kwargs)
  File "/srv/RootTheBox/handlers/AdminHandlers.py", line 365, in get
    uri[args[0]]()
  File "/srv/RootTheBox/handlers/AdminHandlers.py", line 381, in view_user_objects
    self.render('admin/view/user_objects.html', errors=None)
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 667, in render
    html = self.render_string(template_name, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 774, in render_string
    return t.generate(**namespace)
  File "/usr/local/lib/python2.7/dist-packages/tornado/template.py", line 278, in generate
    return execute()
  File "admin/view/user_objects_html.generated.py", line 38, in _tt_execute
    for team in Team.all():  # admin/view/user_objects.html:93 (via main.html:29)
  File "/srv/RootTheBox/models/Team.py", line 85, in all
    return dbsession.query(cls).all()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2292, in all
    return list(self)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 72, in instances
    rows = [process[0](row, None) for row in fetch]
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 452, in _instance
    populate_state(state, dict_, row, isnew, only_load_props)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/loading.py", line 305, in populate_state
    populator(state, dict_, row)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/strategies.py", line 155, in fetch_col
    dict_[key] = row[col]
UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 15: unexpected end of data

The team name is: η@μ&нτЧ ηε!&нβΩμЯ$

I'd like to help you fix this issue if possible, as I used your scoreboard for a local event, I shall pay you back with code. Most of the time there are prerequisites prior to pushing code, so let me know!

@+

Encoding Problems when Export

Hello, Thank you for this amazing tool. Congratz.

I added some dummy stuff with strings like 'isto é um teste' and when I tried export to a file, the tool gave me this output in browser:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1218, in _when_complete
callback()
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1239, in _execute_method
self._when_complete(method(_self.path_args, *_self.path_kwargs),
File "/root/RootTheBox/libs/SecurityDecorators.py", line 58, in wrapper
return method(self, _args, *_kwargs)
File "/root/RootTheBox/libs/SecurityDecorators.py", line 37, in wrapper
return method(self, _args, *_kwargs)
File "/root/RootTheBox/libs/SecurityDecorators.py", line 77, in wrapper
return method(self, _args, *_kwargs)
File "/root/RootTheBox/handlers/AdminHandlers.py", line 1326, in get
uriargs[0]
File "/root/RootTheBox/handlers/AdminHandlers.py", line 1332, in export_xml
xml_doc = self.create_xml()
File "/root/RootTheBox/handlers/AdminHandlers.py", line 1355, in create_xml
corp.to_xml(corps_elem)
File "/root/RootTheBox/models/Corporation.py", line 83, in to_xml
box.to_xml(boxes_elem)
File "/root/RootTheBox/models/Box.py", line 186, in to_xml
flag.to_xml(flags_elem)
File "/root/RootTheBox/models/Flag.py", line 168, in to_xml
ET.SubElement(flag_elem, "description").text = str(self.description)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 5: ordinal not in range(128)

Notification keep flooding

screenshot 2014-12-08 16 39 47

I noticed the notification dropdown keep popping out. It occurs when someone is viewing the scoreboard (even a guest).

In the screenshot above, I have a guest viewing the summary page of the scoreboard repeatedly and the team member (Hacker in this case) got multiple notification of the same kind.

"missions" and XML template for adding boxes.

Are the Missions built in or is that something that the user needs to do separately? If so, how? I'm assuming that's what the import XML function is for but I don't see a template for that.

Can not use the Start Button

Hi,

I am facing the issue that after we started the Python Script, we can nearly do anything on the Website, besides to start a Game. The Button shows no response. Checking in Debug mode, I can not even see the request, when I hit start the game.

Hope you can response soon, we wanted to run the Scorebot this afternoon. :/

bye
MT

rootthebox.cfg - Bank Password

Hello :)

Question about roothebox.cfg: whats the difference between:

[Security]
max_password_length = 7

[Game]
max_password_length = 7

Thank you in advance,
Regards

deleting level bug

Currently, there is a bug in the level system. I am unable to delete any level. It will return in a blank page. On refresh, a 404 page appear

./rootthebox.py --create-tables

./rootthebox.py --create-tables
[*] 20:50:36 : Creating the database ...
Traceback (most recent call last):
File "./rootthebox.py", line 155, in
main(parser.parse_args())
File "./rootthebox.py", line 111, in main
create()
File "./rootthebox.py", line 51, in create
from setup.create_database import create_tables, engine, metadata
File "/home/steve/Documents/RootTheBox/setup/create_database.py", line 21, in
from models import engine
File "/home/steve/Documents/RootTheBox/models/init.py", line 30, in
_config = ConfigManager.instance()
File "/home/steve/Documents/RootTheBox/libs/Singleton.py", line 40, in instance
self._instance = self._decorated()
File "/home/steve/Documents/RootTheBox/libs/ConfigManager.py", line 80, in init
self.refresh()
File "/home/steve/Documents/RootTheBox/libs/ConfigManager.py", line 114, in refresh
self.config.readfp(fp)
File "/usr/lib/python2.7/ConfigParser.py", line 324, in readfp
self._read(fp, filename)
File "/usr/lib/python2.7/ConfigParser.py", line 512, in _read
raise MissingSectionHeaderError(fpname, lineno, line)
ConfigParser.MissingSectionHeaderError: File contains no section headers.
file: /home/steve/Documents/RootTheBox/rootthebox.cfg, line: 2
' Root the Box - Configuration File\n'

Scoreboard display

Hey,
thanks for all the hard work and putting this out for all to use.

My question is this: I can display the scoreboard on the box I'm running rtb on (on an older version of rtb),
though connecting to the rtb engine from any other box, Linux or Windows, will not display the scoreboard correctly.
Nor will it work on the local box with the latest code.

It will show the layout but never any of the graphs.
Is there a setting I'm overlooking?

I notice that in viewing the source of the pages coming in, all the data comes over.
The javascript libraries are there too; just nothing is rendered.

Thanks,
-Armano

P.S.
I'm using VMware workstation 10 running Kali (rtb-test) and CrunchBang (rtb-live) linux both as rtb servers.
Host box is Windows 7, issue is the same regardless of browser used: iceweasle, firefox, chrome, ie.

RoottheBox Setup problem

Hi,

I am having a setup problem, please let me know the reason behind this.

Python Version : 2.7.3
If you have video tutorial for installation, please share.

root@KaliHome:/RootTheBox-master# ./rootthebox.py --setup=prod
[I 150113 10:17:14 ConfigHelpers:9] Saving current config to: files/rootthebox.cfg
[] 10:17:14 : Creating the database ...
[
] 10:17:14 : Bootstrapping the database ...
[?] Admin username: admin
[?] New Admin Password:
[?] Confirm New Admin Password:
Traceback (most recent call last):
File "./rootthebox.py", line 447, in
setup()
File "./rootthebox.py", line 68, in setup
import setup.bootstrap
File "/root/RootTheBox-master/setup/bootstrap.py", line 133, in
dbsession.flush()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1919, in flush
self._flush(objects)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2037, in _flush
transaction.rollback(_capture_exception=True)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in exit
compat.reraise(exc_type, exc_value, exc_tb)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2001, in _flush
flush_context.execute()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
rec.execute(self)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 526, in execute
uow
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 65, in save_obj
mapper, table, insert)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 602, in _emit_insert_statements
execute(statement, params)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 729, in execute
return meth(self, multiparams, params)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 322, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
context)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1159, in _handle_dbapi_exception
exc_info
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
context)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 436, in do_execute
cursor.execute(statement, parameters)
File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 205, in execute
File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
sqlalchemy.exc.IntegrityError: (IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails (rootthebox.user, CONSTRAINT user_ibfk_2 FOREIGN KEY (theme_id) REFERENCES theme (id))') 'INSERT INTO user (created, uuid, team_id, _avatar, _locked, last_login, logins, _handle, password, bank_password, theme_id, algorithm) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' (datetime.datetime(2015, 1, 13, 10, 17, 38, 300696), 'ef632f77-8365-4f40-85a5-f8970f1b7f7d', None, None, 0, None, 0, 'admin', u'$p5k2$2bad$nrrD/1tX$VwtbalM60/KhhuQoyGFGzogs2espm9aM', None, 3, 'md5')

Thanks

404 Error when Submitting a Flag

I get a 404 error when I submit a flag for both a static and file flag. Please see attached screenshot that has the flag setup.
Great project, very easy to set up,
Thanks for the assistance.
Best Regards,

Chris
flag setup

./rootthebox.py --save error on CentOS 7

./rootthebox.py --save
Traceback (most recent call last):
File "./rootthebox.py", line 432, in
options.parse_command_line()
File "/usr/lib/python2.7/site-packages/tornado/options.py", line 191, in getattr
raise AttributeError("Unrecognized option %r" % name)
AttributeError: Unrecognized option 'parse_command_line'

Error 404 problem

When the box name or description exceed the max number of character , it will return an error 404 page instead of error messages.

example: box with name "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Error creating new flag without Box

As admin, if you click on create a flag without making a box first, you will receive this error.
_tmp = box.corporation_name # admin/create/flag.html:54 (via main.html:33)
AttributeError: 'Box' object has no attribute 'corporation_name'

Edit: even after you create a new box, still same error when selecting create flag from admin menu or Add Flag button in game_objects page.

Feature Request - Hints

Is there a way that an administrator could provide multiple hints for each flag instead of tying the hints to each box? This would be a great feature for situations where you want each contestant (students in this case) to be able to obtain every flag and the only difference at the end of the game being the score for each contestant/team.

Thanks for your consideration.
Chris

team management features

Some feature ideas:

  1. The ability to delete existing team
  2. The ability to reset all flag and $$ to 0.

How do I reset the Game

Hi,

maybe I am missing something :(

I have a running box with scorebot. So when I start a game, everything works fine. Noe I want to reset everything and start a new game with the same scenario.

I am pretty sure, I need to reset something within the MySQL Database, but somehow I can not figure it out.

Could somebody provide some Help on this.

Maybe it would be not bad to have a button within the Admin Website, to reset the scores and to restart the game.

aTdHvAaNnKcSe

Bye
MT

restart.sh

When made a change in roothebox.cfg it needs to be restarted, here's a little bash to restart.

$ cat restart.sh

!/bin/bash

kill exact match command. change for --start-server ;)

for process in pgrep -f "python ./rootthebox.py -s";
do echo 'Killing process ID ';
echo $process;
kill -9 $process;

done &&

restart

./rootthebox.py -s

./rootthebox --start

./rootthebox.py --start
[DEBUG] 2014-03-08 13:31:02,745 - Configured to use MySQL for a database
[WARNING] 2014-03-08 13:31:03,795 - Possible misconfiguration 'domain' is set to 'localhost'
Traceback (most recent call last):
File "./rootthebox.py", line 155, in
main(parser.parse_args())
File "./rootthebox.py", line 120, in main
serve()
File "./rootthebox.py", line 42, in serve
from handlers import start_server
File "/home/sl3dge/RootTheBox/handlers/init.py", line 52, in
from handlers.PastebinHandlers import *
File "/home/sl3dge/RootTheBox/handlers/PastebinHandlers.py", line 31, in
from libs.Form import Form
ImportError: No module named Form

Federal Reserve upgrade purchase

The purchase is successful, however the page crashes and displays this:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1218, in _when_complete
callback()
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1239, in _execute_method
self._when_complete(method(_self.path_args, *_self.path_kwargs),
File "/home/steve/RootTheBox/libs/SecurityDecorators.py", line 38, in wrapper
return method(self, _args, *_kwargs)
File "/home/steve/RootTheBox/libs/SecurityDecorators.py", line 166, in wrapper
return method(self, _args, *_kwargs)
File "/home/steve/RootTheBox/handlers/MarketHandlers.py", line 67, in post
event = self.event_manager.create_purchased_item_event(user, item)
File "/home/steve/RootTheBox/libs/EventManager.py", line 150, in create_purchased_item_event
self.push_broadcast_notification(evt_id)
File "/home/steve/RootTheBox/libs/EventManager.py", line 108, in push_broadcast_notification
Notification.delivered(user_id, event_uuid)
File "/home/steve/RootTheBox/models/Notification.py", line 80, in delivered
notify.viewed = True
AttributeError: 'NoneType' object has no attribute 'viewed'

Trouble Setting Ip's

When I am assigning an IP to a box, I am not sure how I can make that public for the players.

Bug - Editing flag

There was a bug when editing a flag.
The Box option automatically change to the first item in the combo box list. If you click in Edit button without change anything, the flag will be moved to the selected item in combo box which may be not the original one.

Installation Problem

Hi,
I was very interested in the Root The Box application and decided to try it out. During the installation, following the video tutorial provided, I ran into this problem:

problem

Unfortunately, I am also new at the Python language and unsure of the issue here.

I am running Debian 7 OS with Python version of 2.7.3. Any help would be much appreciated!

Thank you :)

Issue with the flag submission backdrop

In some browsers, players could not submit flags because the black overlay was over the flag input box.

Some reported the issue in chrome, some others in Firefox... i'm not sure yet.

Here is what one of the players sent me:

The problem is a modal-backdrop in css themes. z-index maybe.

https://github.com/moloch--/RootTheBox/search?q=modal-backdrop&ref=cmdform

They also gave me a (corrected) cyborg.css file which can be found here http://pastebin.com/raw.php?i=PPVxLHz9

All credits to: [email protected]
Again, thanks for this scoreboard

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.