menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 007-papers chevron_right 094-密码找回功能可能存在的问题.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    094-密码找回功能可能存在的问题.md
    3.25 KB / 2021-07-17 00:01:36
        # 密码找回功能可能存在的问题
    
    ### 0x00 背景介绍
    
    * * *
    
    有人的地方就有江湖。
    
    互联网中,有用户注册的地方,基本就会有密码找回的功能。
    
    而密码找回功能里可能存在的漏洞,很多程序员都没有想到。
    
    而这些漏洞往往可能产生非常大的危害,如用户账号被盗等。
    
    并且这种漏洞在非常多的大互联网公司中都出现过。
    
    ### 0x01 检测方式及案例
    
    * * *
    
    乌云上搜索:`密码找回,密码修改,密码重置`关键字。
    
    总结出以下7点,如有其它的还望提醒补充~!
    
    大家在为公司项目做测试的时候可做参考。
    
    找回密码存在缺陷的地方有几处:
    
    #### 1、密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解。
    
    案例:
    
    [WooYun: 当当网任意用户密码修改漏洞](http://www.wooyun.org/bugs/wooyun-2012-011833)
    
    还有一个做了限制但是被绕过的经典案例:
    
    [WooYun: 微信任意用户密码修改漏洞](http://www.wooyun.org/bugs/wooyun-2012-011720)
    
    限制了提交次数,但是存在逻辑问题,可以绕过,具体可以点击去看下。
    
    #### 2、密码找回凭证可从客户端直接获取。
    
    密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了。
    
    [WooYun: 走秀网秀团任意密码修改缺陷](http://www.wooyun.org/bugs/wooyun-2012-05630)
    
    #### 3、密码找回凭证在页面中可以直接获取。
    
    一个经典案例,找回密码的答案在网页的源代码中……
    
    [WooYun: sohu邮箱任意用户密码重置](http://www.wooyun.org/bugs/wooyun-2012-04728)
    
    #### 4、密码找回凭证可以比较容易的猜出。
    
    找回密码的关键凭证仅仅是时间戳的md5,被白帽子犀利的察觉到~,轻松找回任意账户密码。
    
    [WooYun: 奇虎360任意用户密码修改漏洞](http://www.wooyun.org/bugs/wooyun-2012-08333)
    
    #### 5、密码找回凭证存并非只是与单个用户并绑定的问题。
    
    找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户。
    
    [WooYun: 身份通任意密码修改-泄漏大量公民信息](http://www.wooyun.org/bugs/wooyun-2012-012572)
    
    #### 6、用户找回密码的邮箱地址或者手机号码被修改。
    
    这个其实应该是绑定安全手机的逻辑问题,导致可以使任意用户帮上自己可控的安全手机,然后就可以重置任意人的手机号码了。
    
    [WooYun: 网易邮箱可直接修改其他用户密码](http://www.wooyun.org/bugs/wooyun-2012-08307)
    
    #### 7、在最后提交修改的密码处的逻辑错误。
    
    前面所有的逻辑都没有问题,那么是不是就没有问题了呢?
    
    还有白帽子发现,在最后重置密码处跟随一个用户ID,改成其它用户的ID,即可把其它用户改成你刚刚修改的密码。
    
    [WooYun: 携程旅行网任意老板密码修改(庆在wooyun第100洞)](http://www.wooyun.org/bugs/wooyun-2013-018263)
    
    ### 0x02 修复方案
    
    * * *
    
    找回密码凭证够复杂并且不可猜测,同时注意以上逻辑问题,不可存在越权,或者重要的凭证在不该出现的地方出现。
    
    links
    file_download