起因
在i春秋社区论坛看到一篇帖子:【逻辑漏洞】挑战你的思维方式 ,作者@sqler分享了他解决问题的思路,很清晰明了,值得点赞~
本次想分享一个更快捷的思路以供参考。
开始

突破点就在于忘记密码的逻辑处理了

抓包来分析admin与其他任意用户名(building)的区别


核心就在于构造sukey的值
对再次发包所得sukey=31c04d0f6c95e8f53442e1e674c98b74
进行MD5解密,发现是本地时间戳


而返回包中的服务器时间是使用GMT,及与本地北京时间相隔8小时
如此就简单了,设置username=admin
,取得返回包中的服务器时间+8小时,转换为unix时间戳,在进行MD5加密即可算出重置密码的核心参数sukey




只需要仔细的判断加以合理的分析,这道CTF题就做出来了。
此类型的逻辑漏洞在实际测试环境中也会出现,需要细细体会。
有人质疑这题做的有什么用?这里给出了合理的答案奇虎360任意用户密码修改漏洞
懂的人自然懂