新型渗透思路:两种密码重置之综合利用 – 作者:风之传说

*本文原创作者:风之传说,本文属FreeBuf原创奖励计划,未经许可禁止转载

在逻辑漏洞中,任意用户密码重置最为常见,可能出现在新用户注册页面,也可能是用户登录后重置密码的页面,或者用户忘记密码时的密码找回页面,其中,密码找回功能是重灾区。

首先,在大家了解此漏洞的基础上,需要先了解2种密码重置的方式以便于漏洞理解。

第一种:认证值未起作用。

http://www.freebuf.com/articles/web/164090.html

第二种:用户混淆

http://www.freebuf.com/articles/web/162152.html

没有空看完那两篇文章的童鞋,可以直接看我讲解。有时间的可以跳过讲解直接看文章。

第一种:

就是用户在密码重置的时候,返回一串密文作为认证值,但是由于程序编写错误,这个认证值未起作用,可以使用任意认证值进行密码重置。

第二种:

就是用已知账号1填入身份验证,进入第三步,设置新密码处暂停。然后打开浏览器用账号2进入第二步,这样cookies就被刷新为账号2的,重置的就是账号2的密码了。

此处漏洞,有点特殊,需要两种密码重置思路进行配合一起绕过,达到密码重置的目的,属于密码重置更深入的利用。

以下域名用hacker替代,进行实战演示:

账号1:

http://loan.hacker.com/fpwd1  首先,打开页面。

 图片.png

填入自己注册的账号,然后点击下一步:

图片.png

然后填入手机接收的验证码,点击下一步:

图片.png

到第三步后,然后点击下一步进行抓包,记住这个包不能提交出去:

图片.png

可以看到,系统验证码key key2是加密的。在此处猜测:

key是第一步生成的,作用为确定用户账户。

key2是第二步生成的,是作为像验证码一样的东西作为绑定该账号。

也就是我们要同时知道key和key2的密文才可以重置密码。难度加大。

在此处,我们考虑使用第二种方法,使用用户混淆来尝试下,是否可以重置密码。

账号2:

我们在相同浏览器,再次打开一个页面重置15041452711账号,来到第二步,看到了浏览器有这个东西:

图片.png

然后将key替换我们刚才账号1第三步抓取的数据包,然后进行提交:

图片.png

替换完后,提交,显示失败,现实是很骨感的。我们刚才分析过,key是作为用户标识,所以此处必须匹配key2才可以进行密码重置。 但是这个key2无法在页面中获得。于是想到第一种方法,用户的认证值是否可以为空呢?

我们删除key2的参数试试:

图片.png

然后成功设置15041452711的账号。我们登录看看:

图片.png

可以看到,密码重置成功。经过我大量测试,发现只有2种密码重置方法同时配合使用才可以使得密码重置成功。在第二步直接获取key,第三步删除key2也是无法重置用户密码的。

有时候,细心点,就能发现别人发现不了的问题。

另外,此漏洞并未修复,主要是分享技术,已打码,请勿尝试。

*本文原创作者:风之传说,本文属FreeBuf原创奖励计划,未经许可禁止转载

来源:freebuf.com 2018-04-02 08:30:02 by: 风之传说

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论