查看源代码,发现<!-- you are not admin -->node
提示要以管理员身份登录git
尝试注册管理员帐号,提示The username has been registeredgithub
因而尝试随便注册一个帐号,发现注册成功,并可以登录flask
根据页面提示,猜想是经过更改admin帐号的密码获取flag函数
因而进入change password界面,读取源码post
发现提示<!-- https://github.com/woadsl1234/hctf_flask/ -->spa
进入以后是这个网页的源码,经过观察发现代码中从新定义并使用了strlow函数code
而且运用了nodeprep.prepare函数blog
百度以后发现这个函数存在unicode欺骗漏洞,会将ᴬ转换成A,再将A转换成aunicode
因而注册ᴬdmin帐号,进行登录并改密码,就获取了管理员密码
最后登录获得flag
注:此题还有其余解法,一题多解,参考
https://www.jianshu.com/p/f92311564ad0
https://www.anquanke.com/post/id/164086