HCTF2018-admin[Unicode欺骗]

看源码发现

 在修改密码,登录,注册时都有都用strlower()来转小写

看了网上师傅的wp,经验之谈,python中自带转小写函数lower(),但这里使用strlower(),可能存在猫腻。

跟进strlower()发现用的nodeprep.prepare函数,而nodeprep是从Twisted模块导入的,在requirements.txt文件中发现Twisted==10.2.0,而官网最新已经到了19.7.0(2019/9),版本差距很大,应该会存在漏洞

 nodeprep.prepare函数转换时过程如下:

ᴬᴰᴹᴵᴺ -> ADMIN -> admin

网上师傅的思路:在注册的时候  ”ᴬᴰᴹᴵᴺ“ 经过strlower(),转成”ADMIN“ , 在修改密码的时候 ”ADMIN“经过strlower()变成”admin“ , 当我们再次退出登录的时候 ”admin“经过strlower()变成”admin“,这样我们就有了一个已经密码的admin账号,而且在index.html中可以看到只要session['name']=='admin',也就是只要用户名是’admin‘就可成功登录了)

可以在这个网站上查字符

https://unicode-table.com/en/1D2E/

学习链接:

https://blog.csdn.net/weixin_44677409/article/details/100733581

猜你喜欢

转载自www.cnblogs.com/tiaopidejun/p/12336286.html