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