大部分网站为了防止用户遗忘密码,提供了找回密码的功能。常见的找回密码方式有:邮箱找回密码、根据密码保护问题找回密码、根据手机号码找回密码等。虽然这些方式都可以找回密码,但实现方式各不相同。

其实无论是哪种密码找回方式,在找回密码时,除了自己的用户密码,如果还能找回其他用户的密码,就存在密码找回漏洞。密码找回漏洞在逻辑漏洞中占了的比例比较大。测试密码找回漏洞与其他逻辑漏洞的方法相同。其中必经的两个步骤是:熟悉业务流程(密码找回过程)与对流程中的 HTTP 请求分析。本场 Chat 分享会以一些互联网经典案例做讲解,具体内容包括:

  • 用户凭证暴力破解
  • 返回凭证
  • 邮箱弱 token
  • 用户凭证有效性
  • 重新绑定

实录摘要:

  • 密码找回怎么去利用到实战中,怎么去培养这样的思维?
  • 如果是腾讯 QQ 这种需要验证手机才能登录的账号,怎么办?
  • 通过撞库获取的账号密码是怎么一回事?
  • 找回密码时有个提示检测是否处在安全环境,其后面的逻辑是怎样的?
  • 密码找回,比较合理或者相对安全的实现思路是什么?
  • 除了这种逻辑漏洞,其他可能造成用户账户不安全的有哪些?
  • 遇到漏洞问题,请问这种情况下用户该怎么防范?
  • 找回密码这个功能要安全,有什么方法不被破解有代码分享或者文章也行?
  • 公众号对接的 Web APP 怎么实现记住密码?下次免登录吗?

WEB安全用户密码找回多案例安全攻防实战

这次文章以wooyun的密码找回代表性漏洞作为案例来讲解,漏洞的描述会通过提交漏洞的原描述加上我的理解一一列出,通过密码找回的过程描述,得出从漏洞的发现到漏洞的分析。

密码找回逻辑测试一般流程,首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包,分析数据包,找到敏感部分,分析后台找回机制所采用的验证手段,修改数据包验证推测

内容主要是逻辑漏洞,技术性质的内容并不多,以发散思维为目标;所以web开发和安全同学都可以来看看

分享内容目录

  1. 用户凭证暴力破解

  2. 返回凭证

  3. 邮箱弱token

  4. 用户凭证有效性

  5. 重新绑定

一、用户凭证暴力破解

四位或者六位的纯数字例子。

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

漏洞描述

在微信官方的首页上发现了找回密码功能。

点击链接之后看到这个功能.来了兴趣。

在这个页面输入一个已经注册了微信的手机号。

看到了下面的提示信息

点击“我已收到验证码”按钮,就跳转到一个修改密码的页面,如下

在这一步抓包.得到如下包文

code 区域check=false&phone=18666666666&t=w_password_phone&isemail=0&value=18666666666&method=reset&country=A86&getmethod=web&password=zzzzzz&password2=zzzzzz&verifycode=1234

将包文中的verifycode进行重复提交后,发现会提示下图的信息

这样的话.就要想办法去突破.

经过多次尝试后,发现如果在phone=18666666666的号码后面,添加不为数字的字符时,可以绕过这个重复提交的限制.于是我推理出了一个验证逻辑。 如果phone=18666666666的尝试次数大于阀值,则提示请求过于频繁 但在这一步之前没有对phone进行提纯.所以可以将特殊字符带入 但在下一步的时候进行了提纯.只取了phone中的数字部分. 然后在取出此号码的verifycode进行比对. 比对成功则修改密码

修改密码成功. 这个地方的薄弱环节在于微信重置密码的验证码为4-5位纯数字. 且数字范围在1000-20000之间 也就是说.我只要尝试19000次.我用50个线程发包.3分钟即可成功修改一个密码.

#### 原因:

虽然设置了请求阀值,但被猜解除了验证方式,并且找到了绕过方式,验证码为4-5位的数字容易爆破

二、返回凭证

天天网任意账户密码重置(二)

描述

之前看到天天网有爆出漏洞的案例,这次我看看还有没有,果然发现了一枚。

和之前的漏洞一样,打开了找回密码页面,按照了正常流程来找回密码,填好邮箱和验证码,点击下一步,然后抓包。

在抓取到的数据包中发现,返回数据中会返回一个加密字符串,这让我有点好奇心起来了,我把它记录下来。

还是按照了正常流程,打开了我的邮箱,看到了一封找回密码的邮件,我点击了里面的链接地址,进入如下的设置新密码的页面。

这个时候,我把之前记录到的可疑字符串和URL做了一下对比,发现之前的字符串就是当前页面URL最后的部分,竟然是同一个!那我推测,天天网的这个找回密码设计是有问题的,那个邮箱验证码就可以直接绕过了。

设置新密码的的URL为 http://login.tiantian.com/new/modify_password/加密字符串/

为了要验证我的猜测,我在这里用天天网客服 service@tiantian.com 做了一次测试。还是用上面的正常找回密码流程,然后抓包获取到加密字符串,然后组合到上面的设置新密码的url中,就成功重置了这个客服账号的密码了。给大家截个图看看。

原因

找回密码问题的答案在页面源码中可以看到。

三、邮箱弱token

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

描述

360是一个大厂,又是做安全业务的,很好奇它的网站安全性怎么样?

好奇的我做了一个测试,我首先按照正常流程走一次找回密码,打开邮箱,查看给我来的邮件内容:

360个人中心找回密码(重要)!

重设密码地址: http://i.360.cn/findpwd/setpwdfromemail?vc=c4ce4dd3d566ef83f9xxxxxxx&u=xxxx@gmail.com, 马上重设密码! 如果您没有进行过找回密码的操作,请不要点击上述链接,并删除此邮件。

参数vc可以看出是一串32位字符的md5,通过cmd5.com网站解密后发现是个数字,类似1339744000,第一反应猜测是个用户id。我脑袋里马上出来了一个思路,遍历id并且修改u变量是不是可以修改任意用户密码呢?试了一下不可以。 再仔细看了看这个数字,感觉比一般的用户ID大,反复看了几次,突然发现怎么像是个时间戳?

通过时间戳格式化发现,还真是一个时间戳! 再次大胆的猜测了一下这里的流程,用户取回密码时,会产生一个精确的时间戳,和帐号绑定,记录在某个密码重置库内。

修改这个用户密码必须要知道绑定的时间戳才可以,从表面的逻辑来看,好像没问题。不过开发同学忽略了一个细节,什么细节呢?如果这个时间戳是新生成的,我在一定得时间段内进行暴力猜解,很快就可以获取到这个有效得链接。写了个利用工具测试一下。

打开之后果然验证了我的猜测。

修改密码成功后,后跳到了登陆页面,用刚刚修改得密码登陆后看到了个人资料页面。

原因

使用了特定值的加密作为token,被猜解到使用了时间戳的MD5值。在实际过程中我们也可以尝试用户名,手机,邮箱,等等的不同加密方式。

四、用户凭证有效性

短信验证码例子。

OPPO手机重置任意账户密码(3)

描述

oppo在wooyun上暴露了好几次,这次我也来试试。

先逛逛网站,发现主站的帐号跟nearme开发者社区的帐号是通用的,所以如果只要重置了nearme社区帐号主站帐号也被修改。问题出现在www.nearme.com.cn

依然按照正常找回密码流程来,首先我用自己的手机号186****8188找回密码,点击获取一下验证码,于是这时我手机收到了一个4位的数字验证码。

然后到这步暂停,我不去使用验证码重置。

接下来我要做安全测试了,用18688888888这个帐号进行测试。

我们点击登录处的忘记密码,输入要找回的帐号18688888888。

选择通过手机号码找回密码。

关键的地方在3.身份认证这一步,我把18688888888替换成我自己的手机号186****8188输入刚才自己手机获取到的验证码:0198,直接确认下一步。

提交成功,输入新密码:oppoceshi1。

确认一下,重置成功。

那么我们接下来就是要用18688888888:oppoceshi1。

登录一下,测试是否成功以我自己的手机号跟验证码修改了此账户的密码。

登陆成功

也就是说我已经成功用自己的手机号186****8188重置了18688888888的账户密码。

原因

只验证了验证码的有效性,却没有对验证码和手机号码做绑定验证。

五、重新绑定

手机绑定例子。

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

描述

这次我们看一个126邮箱的找回密码漏洞,这个还真和上面的方式有点不一样。

我先来注册一个126邮箱测试帐号。

点击“立即注册” ,后会跳转到一个手机绑定得安全提示页面来。

注意看下这个链接的参数,有个uid,把uid修改成想要黑掉的网易邮箱帐户的uid。

填入一个自己的手机号码,再把验证码发回来。

那我们点击确定并进入邮箱,这个时候这个目标网易邮箱已经被越权绑定了密保手机。

现在我们要改密码就比较简单了,走正常的密码取回流程,发现这个邮箱多了一个通过手机的取回方式,这个手机尾号就是我刚刚绑定的手机!

密码重置成功!!

存在权限判断不当,越权操作的接口是:

http://security.mail.126.com/mobileserv/mbp.do?uid=xxxx&backurl=http://xxx.xx.xx/x

原因:

注册过程的绑定手机页面用过参数修改,将任意账号绑定至可控手机,再来通过密码找回流程找回

最后

通过这篇文章相信你对于密码找回已经有一定的了解,我们发现上面的密码找回思路基本都是通过逻辑推理加技术验证来实现。这种类似的方法还有很多,希望这篇文章对大家的思维能有一点点帮助。


本文首发于GitChat,未经授权不得转载,转载需与GitChat联系。

阅读全文: http://gitbook.cn/gitchat/activity/596c80b647bdb7555aaf07c2

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App , GitChat 专享技术内容哦。

聊聊密码找回 · Web 安全那些事儿相关推荐

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

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

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

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

  3. GitChat · 安全 | 聊聊 「密码找回」

    来自 GitChat 作者:汤青松 更多使用技术,尽在微信公众号:GitChat技术杂谈 进入 GitChat 阅读原文 WEB安全用户密码找回多案例安全攻防实战 这次文章以wooyun的密码找回代表 ...

  4. c#web窗体登录界面登录注册以及密码找回发送邮箱功能

    c#web窗体登录界面登录注册以及密码找回发送邮箱功能 效果图如下: 1.登录界面aspx代码 <%@ Page Language="C#" AutoEventWireup= ...

  5. web安全:验证码绕过、密码找回漏洞

    0x00 验证码的作用 可以防止恶意破解密码,刷票,恶意灌水,有效防止某一黑客对某一个特定注册用户用特定程序暴力破解方法进行不断的登录尝试. 0x01 验证码绕过的常见姿势 1.前端验证验证码,并没有 ...

  6. 聊聊解决方案架构师的那些事儿 | 文末有赠书

    点击上方"程序猿技术大咖",关注并选择"设为星标" 回复"加群"获取入群讨论资格! 文末有赠书活动说明,不妨预留一本,提升下自己! 解决方案 ...

  7. mima.php密码找回,mima.php

    ob_start(); if(isset($_SERVER['HTTP_APPVERSION'])){ include "./saesiteinfo.php"; }else{ if ...

  8. SharePoint中修改密码的WEB Part之终极版:即可以修改AD,又可以修改本机用户密码的Web Part!!...

    在网上查了那么多SharePoint密码修改的第三方开发,都有问题.总结下来: 1 使用IIS6自带的exp2.asp界面来进行密码的修改,这个经过试验,有时无法获得用户的登录名.非常不方便. 2 第 ...

  9. 密码找回功能可能存在的问题

    瞌睡龙 · 2013/07/17 23:51 0x00 背景介绍 有人的地方就有江湖. 互联网中,有用户注册的地方,基本就会有密码找回的功能. 而密码找回功能里可能存在的漏洞,很多程序员都没有想到. ...

最新文章

  1. echarts词云图形状_怎么用Python画出好看的词云图?
  2. Xamarin XAML语言教程使用Progress属性数据绑定设置进度条进度
  3. vim的基本使用方法
  4. 电脑技巧:分享七个解决烦人的弹窗广告的小技巧
  5. Bash脚本教程之命令提示符
  6. Python中abs()和fabs()方法之间的区别
  7. 腾讯百度等22家股东退出 链家注册资本缩水34%
  8. 【Hbase】HBase数据快速导入之ImportTsv
  9. 院内适配层新版框架开发文档
  10. 震惊!谷歌专家爆料:Python和AI这回真的玩大了!网友:好方法!
  11. 任何事情的发生必有其目的,并有助于我
  12. vant 个人中心头像修改
  13. PDCA过程模式在信息安全管理体系的应用
  14. shell脚本合集2
  15. 瞬变抑制二极管TVS原理简介
  16. springboot基于安卓的移动数字图书馆的设计与实现毕业设计源码030911
  17. Visual Tracking Resources
  18. hosts文件为空,仍然显示ERR_CONNECTION_RESET的解决方法(hosts.ics)
  19. CMMI推广中EPG常犯错误
  20. 虚拟机安装centos7

热门文章

  1. 乱码(一): 北京西直门迷路与乱码困惑
  2. 无线射频专题《协议类,IEEE802.11 不同协议下的数据速率参考(Intel WiFi网卡)》
  3. 云计算入门_云计算:入门
  4. 机敏问答[复变][1] #20210615
  5. 交换机端口配置与生成树协议配置
  6. Kibana:使用 Scripted fields 来提高数据的可观测性
  7. 百度文心大模型 3.5 斩获7个满分、三个第一;苹果正在测试 AppleGPT 产品;谷歌给员工断网,降低网络攻击风险|极客头条
  8. UWB稳扎稳打,消费级应用未来可期
  9. xcode编程c语言,使用xcode编写c语言的方法介绍
  10. 数据分析必备思维之:系统性思维