聊聊密码找回 · Web 安全那些事儿

article/2025/4/20 11:34:26

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

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

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

实录摘要:

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

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

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

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

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

分享内容目录

  1. 用户凭证暴力破解

  2. 返回凭证

  3. 邮箱弱token

  4. 用户凭证有效性

  5. 重新绑定

enter image description here

一、用户凭证暴力破解

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

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

漏洞描述

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

img

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

img

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

img

看到了下面的提示信息

img

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

img

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

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进行重复提交后,发现会提示下图的信息

img

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

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

img

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

#### 原因:

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

二、返回凭证

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

描述

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

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

1.jpg

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

2.jpg

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

3.jpg

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

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

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

4.jpg

原因

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

三、邮箱弱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大,反复看了几次,突然发现怎么像是个时间戳?

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

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

img

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

img

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

img

原因

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

四、用户凭证有效性

短信验证码例子。

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

描述

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

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

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

b1.jpg

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

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

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

q5.jpg

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

q6.jpg

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

c2.jpg

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

c3.jpg

确认一下,重置成功。

c4.jpg

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

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

c5.jpg

登陆成功

c6.jpg

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

原因

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

五、重新绑定

手机绑定例子。

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

描述

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

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

img

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

img

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

img

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

img

img

img

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

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

img

img

img

img

img

密码重置成功!!

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

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 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX


http://chatgpt.dhexx.cn/article/F96RAGed.shtml

相关文章

twitter_如何找回旧的Twitter网站

twitter Twitter 推特 Twitter.com was just updated with a new interface. Now a progressive web app, Twitter’s website is more similar to the mobile versions. But you don’t have to use the new one—you can get the classic Twitter website back in a few clic…

忘记网站登录密码不要慌,一招拯救你

忘记网站登录密码不要慌,一招拯救你 有些朋友可能曾经有过这样的痛苦,忘记某个网站的密码,只好找回密码,但操作比较麻烦,更难过的是可能有些网站不能找回密码就更惨,只能一遍一遍的尝试,直到。。…

网站常用邮箱找回密码流程插件页面

<!doctype html> <html> <head> <meta charset"utf-8"> <title>邮箱验证找回密码</title><link href"css/link.css" rel"stylesheet"><link href"css/layui.css" rel"stylesheet&q…

网站漏洞检测之用户密码找回网站漏洞的安全分析与利用

我们SINE安全在对网站&#xff0c;以及APP端进行网站安全检测的时候发现很多公司网站以及业务平台,APP存在着一些逻辑上的网站漏洞&#xff0c;有些简简单单的短信验证码可能就会给整个网站带来很大的经济损失&#xff0c;很简单的网站功能&#xff0c;比如用户密码找回上&…

网站忘记密码怎么找回?

网站忘记密码怎么找回? 两个方法 方法一&#xff1a; 登录数据库&#xff0c;把password 下面的这一串加密串 解密一下。我至今没这样弄过&#xff0c;原理是这样&#xff0c;但是我没找到好用的md5 解密网站。一般的都要收费的。 方法二: 在数据库重置一个简单的密码&#xf…

网站安全检测之用户密码找回网站漏洞的安全分析与利用

我们SINE安全在对网站&#xff0c;以及APP端进行网站安全检测的时候发现很多公司网站以及业务平台,APP存在着一些逻辑上的网站漏洞&#xff0c;有些简简单单的短信验证码可能就会给整个网站带来很大的经济损失&#xff0c;很简单的网站功能&#xff0c;比如用户密码找回上&…

用谷歌浏览器找回历史登陆过的网站的密码

谷歌浏览器找回历史登陆过的网站的密码 本人亲测原因&#xff1a;解决方法&#xff08;谷歌浏览器&#xff09;&#xff1a; 本人亲测 原因&#xff1a; 在做开发时&#xff0c;开发人员大多数登陆各个系统的网站时都会点“记住密码”&#xff0c;下次访问网址时就可以免登陆…

找回消失的网站网页

2019独角兽企业重金招聘Python工程师标准>>> Wayback Machine 从1996年以来&#xff0c;就在给整个互联网做备份&#xff0c;现在一共累计了1500亿网页。使用方法很简单&#xff1a;到网页上“Take me back”旁边的那个网址框输入网址&#xff0c;按钮&#xff0c;…

Chrome浏览器查看、找回保存的网站账户密码

1. 问题&#xff1a; 使用Google的Chrome浏览器&#xff0c;登录谷歌账号后&#xff0c;可以保存自己在各个网站的账号和密码&#xff0c;就不需要每次登录时都重新输入。 然而有时候我们清理垃圾时会把密码清除掉&#xff0c;这时如何找回呢&#xff1f; 2.方法 其实即使电…

Go语言学习笔记

Go学习笔记 Go学习笔记 Go学习笔记Go语言基础语法行分隔行 一、变量1.1 变量的声明1.2 初始化变量1.4 多个变量同时赋值1.5 匿名变量(_) 二、常量三、基本数据类型3.1 整型3.2 浮点型3.3 布尔型3.4 字符串3.4.1 字符串常见转义符3.4.2 反引号定义多行字符串 3.5 字符 四、数据类…

【Mark】计算机组成原理

Contents 计算机系统概论&#xff08;贯穿本书&#xff09;计算机的发展及应用&#xff08;非重点&#xff09;系统总线存储器高速缓冲存储器 计算机的运算方法指令系统 链接 【超详细】计算机组成原理总结及思维导图. 链接 计算机组成原理知识点. 链接 计算机组成原理----思维…

54_集合类库(上)

集合类库&#xff08;上&#xff09; 集合的概述&#xff08;重点&#xff09; 集合的由来 当需要在Java程序中记录单个数据内容时&#xff0c;则声明一个变量&#xff0c;本质就是在内存中申请一个小格子&#xff0c;把数据塞进去。当需要在Java程序中记录多个类型相同的数据内…

[车联网安全自学篇] Android安全之ARM汇编指令集手册「精简汇总版」

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 ARM 指令 1.1 ARM架构的CPU简介 PC端领域CPU的老大是Intel,而移动设备CPU老大就是ARM。不同的cpu架构对应不同的指令集…

论文的排版技巧

在任意中间一页开始插入页码 1.在要插入页码的前一页&#xff0c;插入“分页符”&#xff0c;“插入”-->“分隔符”&#xff0c;选择“分节符类型”中的下一页&#xff0c;如图。 2.在要插入页码的页面&#xff0c;选择“视图”-->“页眉与页角” 去掉“链接到前一个的标…

软件开发实训(720科技)――第五课:前端css规范

一、文件规范 1、文件均归档至约定的目录中。 具体要求通过豆瓣的CSS规范进行讲解&#xff1a; 所有的CSS分为两大类&#xff1a;通用类和业务类。通用的CSS文件&#xff0c;放在如下目录中&#xff1a; 基本样式库 /css/core 通用UI元素样式库 /css/lib JS组件相关样式库 …

word 参考文献插入整理

参考文献插入 方法一&#xff1a;使用尾注插入参考文献 1.1. 以尾注的方式插入第一个参考文献 将光标定位于word文档中将要插入参考文献的位置&#xff0c;按“插入/引用/脚注和尾注”。出现一菜单&#xff0c;选择“尾注”&#xff0c;“文档结尾”&#xff0c;编号格式为“1,…

Word 2010如何对论文中参考文献进行标注

Word 2010如何对论文中参考文献进行标注 1.参考文献在论文中进行标注1.1添加标注1.2修改标注“1→[1]” 2.删除参考文献留下的横线3.参考文献对齐参考 在文章中标注参考文献&#xff0c;之前看别人论文进行的参考文献引文标注&#xff0c;感觉特别高级&#xff0c;这项技能早晚…

WORD 常用操作技巧

word2010首页、目录、正文页码设置方法 2013-07-18 12:11:05| 分类&#xff1a; 实用技巧|举报|字号 订阅 引文来源&#xff1a;http://www.hangxyz.com/display-different-page-number-in-word2010.html 欲在线预览或下载完整教程请访问SkyDrive页面 在用Word编辑说明书、计…

利用Word实现交叉引用或引用尾注添加参考文献图解

from&#xff1a;http://www.office68.com/word/word-reference-add.html 1 利用“交叉引用”加参考文献 1 输入参考文献&#xff0c;如下图 2 选中所有文献&#xff0c;为所选文献统一编号&#xff0c;如下图 3 在正文中需要添加参考文献处添加交叉引用&#xff0c;如下图 4相…

标明文献引用及文献列表自动生成(尾注交叉引用)

摘要&#xff1a; 本文介绍利用Word尾注来注明文献引用&#xff0c;并用交叉引用自动生成文献列表&#xff0c;为论文撰写带来极大便利。最后给出参考文献格式。 撰写论文(或者开题报告或者文献综述)需要在文中标明引用&#xff0c;并生成参考文献列表。一种效率低下的方法&…