Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- from flask import Flask, request, redirect
- import os
- import uuid
- app = Flask(__name__)
- user_to_secret = {}
- class UserSecrets:
- def __init__(self, secrets=[]):
- self.secrets = secrets
- def add_secret(self, secret):
- self.secrets.append(secret)
- return len(self.secrets) - 1
- def get_secret(self, secret_index):
- try:
- return self.secrets[secret_index]
- except KeyError:
- return "Secret does not exist!"
- @app.route("/source")
- def source():
- with open(__file__, "r") as f:
- return f.read()
- @app.route("/robots.txt")
- def robots():
- return "User-agent: *\nDisallow: /source"
- @app.route("/")
- def hello():
- return """Hello! Are you a robot? This is a secret management server."""
- @app.route("/create_account", methods=["POST"])
- def create_account():
- secrets = request.get_json()
- user_id = str(uuid.uuid4())
- if isinstance(secrets, list):
- user_to_secret[user_id] = UserSecrets(secrets)
- else:
- user_to_secret[user_id] = UserSecrets()
- return user_id
- @app.route("/secrets", methods=["POST", "GET", "DELETE"])
- def secret():
- if request.method == "POST":
- user_id = request.form.get("user_id")
- secret = request.form.get("secret")
- try:
- return str(user_to_secret[user_id].add_secret(secret))
- except KeyError:
- return "You do not have a SecretStorage!"
- else:
- user_id = request.args.get("user_id")
- try:
- secret_id = int(request.args.get("secret_id"))
- except ValueError:
- return "The secret id should be an integer!"
- try:
- return user_to_secret[user_id].get_secret(secret_id)
- except KeyError:
- return "You do not have a SecretStorage!"
- if __name__ == "__main__":
- admin_secrets = UserSecrets()
- admin_secrets.add_secret(os.environ['FLAG'])
- app.run(debug=True, port=5001, host="0.0.0.0")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement