from bottle import route, run, template, request, redirect, static_file
import hashlib
from secret import SECRET
INDEX = '
Download a sample here!'
FILES = '
- sample.gif
- dont.gif
- flag
'
def mac(msg):
return hashlib.sha1(SECRET + msg).hexdigest()
@route('/')
def index():
f = 'sample.gif'
return template(INDEX, mac=mac('f=' + f), file=f)
@route('/files/')
def dir():
return FILES
@route('/files//')
def download(umac):
delim = msg = ''
for k,v in request.query.allitems():
msg += delim + k + '=' + v
delim = '&'
if mac(msg) == umac:
return static_file(request.query.f, root='./files')
else:
return redirect('/files/' + mac('f=dont.gif') + '/?f=dont.gif')
run(host='0.0.0.0', port=8888, server='paste')