Meme generator
The solution is unintended.
Difficulty
Points
Description
Quick Analysis
import utils
from flask import Flask, render_template, request
import os
import html
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/api/generate", methods = ["POST"])
def generate():
search_engine = request.form.get("search_engine")
query = request.form.get("query")
if not (search_engine and query):
return "", 400
utils.take_screenshot(search_engine, query)
utils.make_meme()
return "", 200
@app.route("/source")
def source():
with open(__file__, "r") as f:
return f"<pre><code>{html.escape(f.read())}</code></pre>", 200
@app.route("/flag")
def flag():
# TODO: Fix typo
if request.remote_addr == "127.0.0.1" and request.url.startswith("http://l0calhost"):
return os.getenv("FLAG"), 200
return "Nice try", 200
app.run("0.0.0.0", 8080)The home page endpoint /
/The generator endpoint /api/generate
/api/generateThe flag endpoint /flag
/flagGenerate a meme via the home page
Analyzing the query input
Execute javascript code on the client's browser
Exploitation
The flag

References
Last updated