瞌睡龙 · 2013/07/17 23:51

0x00 背景介绍


有人的地方就有江湖。

互联网中,有用户注册的地方,基本就会有密码找回的功能。

而密码找回功能里可能存在的漏洞,很多程序员都没有想到。

而这些漏洞往往可能产生非常大的危害,如用户账号被盗等。

并且这种漏洞在非常多的大互联网公司中都出现过。

0x01 检测方式及案例


乌云上搜索:密码找回,密码修改,密码重置关键字。

总结出以下7点,如有其它的还望提醒补充~!

大家在为公司项目做测试的时候可做参考。

找回密码存在缺陷的地方有几处:

1、密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解。

案例:

WooYun: 当当网任意用户密码修改漏洞

还有一个做了限制但是被绕过的经典案例:

WooYun: 微信任意用户密码修改漏洞

限制了提交次数,但是存在逻辑问题,可以绕过,具体可以点击去看下。

2、密码找回凭证可从客户端直接获取。

密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了。

WooYun: 走秀网秀团任意密码修改缺陷

3、密码找回凭证在页面中可以直接获取。

一个经典案例,找回密码的答案在网页的源代码中……

WooYun: sohu邮箱任意用户密码重置

4、密码找回凭证可以比较容易的猜出。

找回密码的关键凭证仅仅是时间戳的md5,被白帽子犀利的察觉到~,轻松找回任意账户密码。

WooYun: 奇虎360任意用户密码修改漏洞

5、密码找回凭证存并非只是与单个用户并绑定的问题。

找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户。

WooYun: 身份通任意密码修改-泄漏大量公民信息

6、用户找回密码的邮箱地址或者手机号码被修改。

这个其实应该是绑定安全手机的逻辑问题,导致可以使任意用户帮上自己可控的安全手机,然后就可以重置任意人的手机号码了。

WooYun: 网易邮箱可直接修改其他用户密码

7、在最后提交修改的密码处的逻辑错误。

前面所有的逻辑都没有问题,那么是不是就没有问题了呢?

还有白帽子发现,在最后重置密码处跟随一个用户ID,改成其它用户的ID,即可把其它用户改成你刚刚修改的密码。

WooYun: 携程旅行网任意老板密码修改(庆在wooyun第100洞)

0x02 修复方案


找回密码凭证够复杂并且不可猜测,同时注意以上逻辑问题,不可存在越权,或者重要的凭证在不该出现的地方出现。

密码找回功能可能存在的问题相关推荐

  1. 前后端配合实现密码找回功能思路

    -前后端配合实现密码找回功能 前端-邮箱验证 用户进入忘记密码页面(localhost:8080/#/FindPwd),将用户名和图形验证码填入.前端对用户名进行后端校验(调用后端的api判断该用户名 ...

  2. 第9章 完善之个人中心、密码找回功能

    小站:http://oideas.herokuapp.com 教程演示地址:http://omind.herokuapp.com 教程代码地址:https://github.com/joveth/OM ...

  3. 前后端配合实现密码找回功能

    最近在开发一个密码找回的功能,目前已经实现,现在将实现的步骤记录下来. 前端-邮箱验证 用户进入忘记密码页面(localhost:8080/#/FindPwd),将用户名和图形验证码填入.前端对用户名 ...

  4. php使用邮件找回密码,thinkphp实现发送邮件密码找回功能实例

    本文实例讲述了thinkphp实现发送邮件密码找回功能的方法.分享给大家供大家参考.具体实现方法如下: 首先下载mail.class.php类文件,配置文件中定义下列参数: 'MAIL_ADDRESS ...

  5. java web 找回密码_java web实现 忘记密码(找回密码)功能及代码

    java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...

  6. java学习笔记——众筹项目练习——项目中的忘记密码(密码找回)与记住我(自动登录)功能 和 返回json数据低版本浏览器显示下载问题的解决、众筹系统架构重构

                                          忘记密码(密码找回) 忘记密码(密码找回)这个功能可以说是目前所有为别人提供服务的软件系统都具备的基础功能啦!很普遍,因为总 ...

  7. 国外众测之密码找回漏洞

    原文出处: 国外众测之密码找回漏洞 - 先知社区 (aliyun.com) 前言 最近一直在看国外众测的文章,偶尔也逛逛hackerone,发现公布的漏洞中存有不少的逻辑漏洞,毕竟在hackerone ...

  8. Web 攻防之业务安全:密码找回安全案例总结.

    Web 攻防之业务安全:密码找回安全案例总结 业务安全是指保护业务系统免受安全威胁的措施或手段.广义的业务安全应包括业务运行的软硬件平台(操作系统.数据库,中间件等).业务系统自身(软件或设备).业务 ...

  9. 密码找回php,PHP结合jQuery实现找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

最新文章

  1. PHP_编码问题汇总
  2. oracle 管道化表函数(Pipelined Table) [转]
  3. leetcode算法题--二叉树中和为某一值的路径
  4. c/c++十七: 变长参数
  5. 阿里巴巴P9大佬雷卷与中间件小哥重新定义:高段位程序员的学习之道
  6. php前台用户权限开通,vue实现网站前台的权限管理
  7. 一本通 1064:奥运奖牌计数--AC
  8. oracle三种连接身份
  9. pip 安装tensorflow==2.1太慢怎么办?(pip安装超时Read timed out)
  10. [wp7游戏]wp7~~~连连看 游戏~~集合贴~~
  11. FreeSWITCH折腾笔记3——数据库修改为postgresql
  12. 抖音快手vbs表白代码大全(操作方法)
  13. Java中使用Google zxing生成二维码
  14. java番茄钟_番茄时间管理 - java Swing版
  15. 追随张至顺道长的日子
  16. 来聊一聊广告主“又爱又恨”的EDM营销那档子事儿!
  17. 响应式布局的实现方式
  18. windows系统C++获取当前电脑电池信息
  19. 2021年中国金针菇供需现状及竞争格局分析,上半年行业整体盈利水平降低「图」
  20. 金弘同创教育:拼多多店铺分数多久清算一次

热门文章

  1. python学习:time、unixtime、string的转换
  2. chrome调试手机webview中页面
  3. Java异常信息处理
  4. 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试
  5. CSS类命名的语义化VS结构化方式
  6. 《大道至简》一书第三版,与编辑就本书写作风格的讨论
  7. 微信小程序--字体展示
  8. 在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?
  9. SpringMVC+Mybatis+MySQL配置Redis缓存
  10. Red Hat Linux 挂载外部资源