查看源代碼,發現<!-- 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