题目
from flask import Flask, render_template, request
from flag import flag, FLAG
import datetime
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def index():
f = open("app.py", "r")
ctx = f.read()
f.close()
f1ag = request.args.get('f1ag') or ""
exp = request.args.get('exp') or ""
flAg = FLAG(f1ag)
message = "Your flag is {0}" + exp
if exp == "":
return ctx
else:
return message.format(flAg)
if __name__ == "__main__":
app.run()
思路
关键代码分析:
-
flAg = FLAG(f1ag):用户提供的f1ag参数被传入FLAG函数处理,假设当参数不正确时返回一个对象实例。 -
message = "Your flag is {0}" + exp:将用户输入的exp拼接到字符串中,形成新的格式化字符串。 -
return message.format(flAg):使用flAg作为参数进行格式化,若exp包含格式化占位符,可触发二次格式化,访问对象属性。

最低0.47元/天 解锁文章
2857

被折叠的 条评论
为什么被折叠?



