from crypt import *
from base64 import b64encode,b64decode
from config import *
from time import sleep
import urllib
from flask import render_template
secret_msg = {
1337:"Welcome Back Administrator, Secret Key: %s" % (FLAGS['po2']),
1000:"Superb!"
}
def validate_cookie_po1(cookie):
print("validating cookie: %s" % cookie)
msg = decrypt(b64decode(cookie))
if msg == False:
return '{"Error":"PaddingError"}'
else:
print('Debug: decryped cookie: %s' % msg)
username,pwhash,ar,flag = msg.split(':')
ar = int(ar)
for user in app_users:
if user.username == username and user.pwhash == pwhash:
# the cookie got a valid username and password
return render_template("welcome_ch1.html", username=username, rights=ar, secret=secret_msg.get(ar, "--- no message for you ---"))
else:
return "
An Error occured.
"
def validate_cookie_po2(cookie):
print("validating cookie: %s" % cookie)
msg = decrypt(b64decode(cookie))
if msg == False:
return '{"Error":"PaddingError"}'
else:
print('Debug: decryped cookie: %s' % msg)
username,pwhash,ar,flag = msg.split(':')
ar = int(ar)
for user in app_users:
if user.username == username and user.pwhash == pwhash:
# the cookie got a valid username and password
return render_template("welcome_ch2.html", username=username, rights=ar, secret=secret_msg.get(ar, "--- no message for you ---"))
else:
return "An Error occured.
"
def validate_cookie_po3(cookie):
msg = decrypt(b64decode(cookie))
if msg == False:
# just pretend to have a longer timing
sleep(1)
return ''
else:
print('Debug: decryped cookie: %s' % msg)
username,pwhash,ar,flag = msg.split(':')
ar = int(ar)
for user in app_users:
if user.username == username and user.pwhash == pwhash:
# the cookie got a valid username and password
return render_template("welcome_ch3.html", username=username, rights=ar, secret=secret_msg.get(ar, "--- no message for you ---"))
else:
return "An Error occured.
"
def validate_cookie_po4(cookie):
pass
def create_cookie_po1(user_obj):
print('Debug: user_obj: %s' %user_obj)
user_obj.flag = FLAGS['po1']
cookie = b64encode(encr(str(user_obj)))
return cookie
def create_cookie_po2(user_obj):
print('Debug: user_obj: %s' %user_obj)
user_obj.flag = "P{Its-not-that-easy!;)}"
cookie = b64encode(encr(str(user_obj)))
return cookie
def create_cookie_po3(user_obj):
print('Debug: user_obj: %s' %user_obj)
user_obj.flag = FLAGS['po3']
cookie = b64encode(encr(str(user_obj)))
return cookie