github编辑

[HCTF 2018]admin

[HCTF 2018]admin

考点

  • flask session伪造

  • Unicode欺骗

wp

第一种做法

注册登录后,在change password处给了源码

打开可以看到是flask的源码,结合题目,可以判断要伪造admin。在config.py中找到SECRET_KEY = os.environ.get('SECRET_KEY') or 'ckj123'

然后就可以使用flask-unsign了

得到的内容为

在用SECRET_KEY重新加密

得到session,再用这个session访问index即可

第二种做法

使用Unicode欺骗。本题在获取参数时使用了自定义的strlower函数,nodeprep.prepare对应的库为https://github.com/twisted/twistedarrow-up-right

nodeprep.prepare函数会把Latin Letter Small Capitalarrow-up-right先转为大写再转为小写,即

那就可以先注册ᴀdmin,再修改密码,再以admin身份登录

小结

最后更新于