原文作者:瞌睡龙
0x00 背景介绍
有人的地方就有江湖。
互联网中,有用户注册的地方,基本就会有密码找回的功能。
而密码找回功能里可能存在的漏洞,很多程序员都没有想到。
而这些漏洞往往可能产生非常大的危害,如用户账号被盗等。
并且这种漏洞在非常多的大互联网公司中都出现过。
0x01 检测方式及案例
乌云上搜索:密码找回,密码修改,密码重置
关键字。
总结出以下7点,如有其它的还望提醒补充~!
大家在为公司项目做测试的时候可做参考。
找回密码存在缺陷的地方有几处:
1、密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解。
案例:
还有一个做了限制但是被绕过的经典案例:
限制了提交次数,但是存在逻辑问题,可以绕过,具体可以点击去看下。
2、密码找回凭证可从客户端直接获取。
密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了。
3、密码找回凭证在页面中可以直接获取。
一个经典案例,找回密码的答案在网页的源代码中……
4、密码找回凭证可以比较容易的猜出。
找回密码的关键凭证仅仅是时间戳的md5,被白帽子犀利的察觉到~,轻松找回任意账户密码。
5、密码找回凭证存并非只是与单个用户并绑定的问题。
找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户。
6、用户找回密码的邮箱地址或者手机号码被修改。
这个其实应该是绑定安全手机的逻辑问题,导致可以使任意用户帮上自己可控的安全手机,然后就可以重置任意人的手机号码了。
7、在最后提交修改的密码处的逻辑错误。
前面所有的逻辑都没有问题,那么是不是就没有问题了呢?
还有白帽子发现,在最后重置密码处跟随一个用户ID,改成其它用户的ID,即可把其它用户改成你刚刚修改的密码。
WooYun: 携程旅行网任意老板密码修改(庆在wooyun第100洞)
0x02 修复方案
找回密码凭证够复杂并且不可猜测,同时注意以上逻辑问题,不可存在越权,或者重要的凭证在不该出现的地方出现。
====================续====================
作者:BMa
0x00 背景介绍
以前看了一片密码找回漏洞的总结,现在又看到了一些新的情况,写出来补充一下。
0x01 回顾
上篇文章中已有的7点如下:
1. 密码找回凭证太弱,容易被爆破
2. 密码找回凭证可以从客户端、URL中直接获取
3. 密码找回凭证可以在网页源代码中直接获取
4. 密码找回的邮箱链接易猜解,如时间的md5
5. 密码找回凭证存并非只是与单个用户并绑定的问题。
6. 密码找回的手机或邮箱从页面获取,可以通过firebug修改
7. 最后提交新密码时修改用户ID为其他ID
0x02 补充
- 跳过验证步骤、找回方式,直接到设置新密码页面
WooYun: OPPO手机同步密码随意修改,短信通讯录随意查看
- 找回密码时没有在服务器上验证用户名与邮箱是否匹配便发送了验证码
WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置
http://www.zhaojin97.cn/read-196.html
- 重置密码时返回的token没有与账号以及验证码绑定
还是上面的魅族密码重置问题
- 服务器只验证了对应的验证信息是否存在,没有验证是否与账号匹配
WooYun: 第二次重置OPPO手机官网任意账户密码(秒改)
- 在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回信息是可控的内容,或者可以得到的内容
- 发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制
- 提交新密码时的,只验证了部分可控的信息是否匹配
- 在找回密码处存在注入漏洞
WooYun: 用友人力资源管理软件(e-HR)另一处SQL注入漏洞(通杀所有版本)
0x03 修复方案
找回密码凭证够复杂并且不可猜测,任何动作放在服务器端进行,传输的验证参数做好加密,同时对参数做好过滤。
《 “[collect]密码找回功能可能存在的问题[bak]” 》 有 2 条评论
WooYun 镜像
http://wooyun.chamd5.org/
https://github.com/hanc00l/wooyun_public
乌云公开漏洞、知识库搜索 漏洞/文章:40293/1269
http://wooyun.jozxing.cc/
http://cb.drops.wiki/
乌云漏洞列表
https://wooyun.shuimugan.com/
WooYun 乌云整站镜像文件下载 | 漏洞库Bugs | 知识库Drops 下载
https://www.t00ls.net/articles-34997.html
http://www.anquan.us/
http://wooyun.webbaozi.com/
https://github.com/fxfactorial/wooyun.github.io
https://github.com/jiji262/wooyun_articles
https://wooyun.js.org/
http://wps2015.org/drops/