mirror of https://github.com/dirtbags/moth.git
40 lines
941 B
Python
Executable File
40 lines
941 B
Python
Executable File
#!/usr/bin/python
|
|
|
|
import cgi
|
|
import cgitb; cgitb.enable()
|
|
import os
|
|
import sys
|
|
|
|
from urllib import quote
|
|
|
|
from ctf import teams, html, paths
|
|
|
|
basedir = os.path.join(paths.VAR, 'tanks')
|
|
|
|
links = '''
|
|
<h3>Tanks</h3>
|
|
<li><a href="docs.html">Docs</a></li>
|
|
<li><a href="results.cgi">Results</a></li>
|
|
<li><a href="submit.html">Submit</a></li>
|
|
<li><a href="errors.cgi">My Errors</a></li>
|
|
'''
|
|
|
|
|
|
fields = cgi.FieldStorage()
|
|
team = fields.getfirst('team', '').strip()
|
|
passwd = fields.getfirst('passwd', '').strip()
|
|
code = fields.getfirst('code', '')
|
|
if not teams.chkpasswd(team, passwd):
|
|
body = '<p>Authentication failed.</p>'
|
|
elif not code:
|
|
body = '<p>No program given.</p>'
|
|
else:
|
|
path = os.path.join(basedir, 'ai/players', quote(team, safe=''))
|
|
file = open(path, 'w')
|
|
file.write(code)
|
|
file.close()
|
|
|
|
body = ("<p>Submission successful.</p>")
|
|
|
|
html.serve('Tanks Submission', body, links=links)
|