[HCTF 2018]admin

说明:
看大佬秀操作
本篇只记录一种解法…其他解看上面文章

有个登录注册,注册登录后是这个玩意
[HCTF 2018]admin
[HCTF 2018]admin

查看源代码,说明得是admin登录才行

在改密码的时候查看源代码,发现了这东西
[HCTF 2018]admin
进去这个链接查看源码在**hctf_flask/app/routes.py /**里头看到这个函数

[HCTF 2018]admin
看了大佬们的思路,自己还是不够熟练,既然这是拿python写的,为啥不用python自带的lower()将字符小写呢,
所以我们找找这个函数在哪里
[HCTF 2018]admin
[HCTF 2018]admin
可以发现nodeprep 来自 from twisted.words.protocols.jabber.xmpp_stringprep import nodeprep

我直接将这段话去百度,搜出个unicode欺骗。。。。。

[HCTF 2018]admin
利用nodeprep.prepare函数会将unicode字符转换成A
而在源码中我们可以看到strlower有三次被调用,分别在注册,登录,改密码的时候
所以再改密码的时候又会将A变成a

解法:
ᴬdmin注册
[HCTF 2018]admin
可以发现变成Admin
咱们改改密码
改为后退出用admin登录
[HCTF 2018]admin