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

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2013-07-17T15:51:00Z
Canonical: https://wepostx.com/topics/678

> 乌云历史资料归档
>
> **原始作者：** 瞌睡龙
> **原始编号：** superkieran-wooyundrops:44
> **原始发布时间：** 2013-07-17 23:51
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

### 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 修复方案

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

## Replies
