03.密码找回漏洞
本文最后更新于464 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、漏洞简介

网站在对密码修改的时候,未对修改密码的凭证、步骤做严格的限制,导致可以被绕过从而修改密码。

二、测试思路

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

三、常见方法

A.验证码不失效

1.原理

一般情况下找回密码通过手机号码或者邮箱号码找回,短信验证码一般都有过期的时间,如果验证码没有过期时间或者是过期时间太久,导致可以爆破

2.测试方式

通过爆破、枚举的方法找到正确的验证码

B. 验证凭证回传

1.原理

验证码一般会发送到手机或者邮箱里,但是由于开发者的失误,通过抓取返回包可以看到验证码

2.测试方法

通过截断数据包分析验证码是否在数据包中,如果捕获到,就可以直接填写。

C.验证码未绑定

1.原理

输入手机号和验证码进行重置密码的时候,仅对验证码是够正确进行了判断,未对该验证码是否与手机号匹配做验证。

2.测试方法

在提交手机号和验证码的时候,替换手机号为其他手机号进行测试,成功通过验证并重置其密码。

D.用户名未绑定邮箱号/手机号

1.原理

用户名、手机号、验证码三者没有统一进行验证,仅判断了三者中的手机号和验证是否匹配和正确,如果正确则判断成功并进入密码修改界面。

2.测试方法

输入用户名获取验证码,通过抓包修改接收验证码的手机号为自己的号码,自己手机成功接收验证码,提交到网站进行验证,验证成功并进入密码修改界面。

E.修改新密码时未校验用户字段

1.原理

在重置密码界面,没有再次对用户ID进行校验,导致提交参数时可以将用户ID更改,从而修改其他用户的密码。

2.测试方法

使用自己账号和自己手机号进行密码重置,在最后重置密码时,抓包修改用户id相关信息,修改他人密码。

四、修复方法

1.一次性填写校验信息(原始密码、新密码等)后再提交修改密码请求;
2.对客户端提交的修改密码请求,应对请求的用户身份与当前登录的用户身份进行校验,判断是否有权修改用户的密码并对原始密码是否正确也进行判断;
3.不应该将用于接收验证信息的手机、邮箱等信息全部明文传到客户端,应对手机、邮箱等信息进行屏蔽处理,或不将此类信息返回到客户端;
4.对原始密码进行了验证的情况下,限制输入原始密码的错误次数,以及有效的限制,防止攻击者暴力破解原始密码;
5.重置密码链接中的关键信息应随机化,不可预测(例如token机制),且禁止将关键信息返回到客户端。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇