#!/usr/bin/python3 import cgi import cgitb; cgitb.enable() import os import sys import Config try: from urllib.parse import quote except: from urllib import quote try: from ctf import teams except: path = '/home/pflarr/repos/gctf/' sys.path.append(path) from ctf import teams from ctf import config teams.build_teams() print(config.start_html('Tanks Submission', links_title='Tanks', links=[('docs.cgi', 'Docs'), ('results.cgi', 'Results'), ('submit.html', 'Submit'), ('errors.cgi', 'My Errors')])) def done(): print(config.end_html()) sys.exit(0) fields = cgi.FieldStorage() team = fields.getfirst('team', '').strip() passwd = fields.getfirst('passwd', '').strip() code = fields.getfirst('code', '') if not team: print('
No team specified
'); done() elif not passwd: print('No password given
'); done() elif not code: print('No program given.
'); done() if team not in teams.teams: print('Team is not registered.
'); done() if passwd != teams.teams[team][0]: print('Invalid password.
'); done() path = os.path.join(Config.DATA_PATH, 'ai/players', quote(team, safe='') ) file = open(path, 'w') file.write(code) file.close() print("Submission successful.
") done()