目录

  • 什么是密码找回漏洞
  • 一般流程
  • 可能产生该漏洞的情况
  • 脑洞图
    • 1.用户凭证暴力破解
    • 2.返回凭证
    • 3.邮箱弱token
    • 4.用户凭证有效性
    • 5.重新绑定
    • 6.服务器验证
    • 7.用户身份验证
    • 8.找回步骤
    • 9.本地验证
    • 10.注入
    • 11.Token生成
    • 12.注册覆盖
    • 13.session覆盖
  • 演示
    • 暴破验证码找回密码
    • 更改id号修改admin密码
  • 靶场cms下载

什么是密码找回漏洞

利用漏洞修改他人帐号密码,甚至修改管理员的密码。

一般流程

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

可能产生该漏洞的情况

1、验证码爆破的,对验证码有效期和请求次数没有进行限制;2、token验证之类的,直接将验证内容返回给用户;3、找回密码功能的进行身份验证内容未加密或者加密算法较弱,容易被猜解;4、对用户的身份验证在前端进行,导致验证被抓包绕过;5、在最后一步修改密码的动作时,没有校验帐号是否通过了验证、短信与手机号是否对应。

脑洞图

1.用户凭证暴力破解

1.1 密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字,就可以重置密码,导致可以暴力破解。

2.返回凭证

2.1 url返回验证码及token(找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户)

2.2 密码找回凭证在页面中(通过密保问题找回密码、找回密码的答案在网页的源代码中)

2.3 返回短信验证码

3.邮箱弱token

3.1 时间戳的md5(Unix时间戳)
3.2 用户名
3.3 服务器时间

4.用户凭证有效性

4.1 短信验证码
4.2 邮箱token
4.3 重置密码token

5.重新绑定

5.1 手机绑定(任意用户绑上自己可控的安全手机,就可以重置任意人的手机号码了)
5.2 邮箱绑定

6.服务器验证

6.1 最终提交步骤
6.2 服务器验证可控内容(在最后重置密码处跟随一个用户ID,改成其他用户ID,即可把其他用户改成你刚刚设置的密码)
6.3 服务器验证逻辑为空

7.用户身份验证

7.1 账号与手机号码的绑定
7.2 账号与邮箱账号的绑定

8.找回步骤

8.1 跳过验证步骤、找回方式,直接到设置新密码页面

9.本地验证

9.1 在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回的信息是可控的内容,或者可以得到的内容(密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了)
9.2 发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制

10.注入

10.1 在找回密码出存在注入漏洞

11.Token生成

11.1 Token生成可控

12.注册覆盖

12.1 注册重复的用户名(比如注册A,返回用户已存在,把已存在的状态修改为可注册,填写信息提交注册,就可以覆盖A账号)

13.session覆盖

参考资料来源 https://bbs.ichunqiu.com/thread-18920-1-1.html

演示

暴破验证码找回密码

首先,要知道管理员的邮箱,还有后台路径

初始密码是1,登录成功,说明网站配置没问题

现在开始爆破之路。
退出登录,进入后台,选择找回密码

确认找回
这里没有配置邮箱服务,所以报错,实际网站管理员是会开启邮箱服务的

这里的绕过payload:?type=ok&umail=yc@qq.com,yc@qq.com 是管理员的邮箱。实际操作中,可以从网页上管理员的联系方式中找到管理员的邮箱信息。

这里密码随便输,认证码也随便填一个4位数(因为此cms的认证码是个由数字组成的四位数)

准备抓包,然后点击确认找回
右击鼠标,发送给测试器(或者直接ctrl+l)

进入测试器,位置,清除所有负载

然后选中1111,也就是邮箱认证码,添加负载

选中有效载荷,类型选择数值,从0000开始,到9999结束,每次递增1

进入选项,这里线程数根据实际要求来。比如一个6位数的验证码,1分钟后就失效了,线程就要高——线程不能太高了,不然电脑容易崩。如果只有4位数,才10000次请求,或者验证码10分钟才失效,线程就可以低一点

然后开始攻击

发现1返回的长度和其他的都不一样,那就说明验证码可能是0001

回到找回密码的界面,将认证码改为0001,确认找回

提示操作成功

使用更改过的密码登录,登录成功

更改id号修改admin密码

先登录admin的初始密码是admin


然后退出,用普通用户登录,账号aaaaa,密码asdfsadf。登录成功后选择修改密码。

旧密码随便填,因为在这里旧密码就是个摆设:系统监测到你已经登录,就默认你知道旧密码,不会再验证旧密码。

这里我设置新密码是123456


抓包,将uid改为1(admin的uid值为1;aaaaa的uid为2 。这里改成1是为看修改admin的密码,当然也可以换成其他的,比如3,4,5,6,7……就会修改对应uid账号的密码)

改完之后把包放了
显示ok,说明修改密码成功


使用账号admin,密码123456登录成功。
admin原来的初始密码admin已经失效。aaaaa的密码也没有修改,仍然是asdfsadf

靶场cms下载

semcms下载链接(建议安装在根目录)

逻辑漏洞之密码找回漏洞(semcms)相关推荐

  1. 100.网络安全渗透测试—[常规漏洞挖掘与利用篇16]—[密码找回漏洞与测试]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.密码找回漏洞与测试 1.密码找回漏洞简介 2.密码找回漏洞测试 (1)源码审计:forget.php (2) ...

  2. 国外众测之密码找回漏洞

    原文出处: 国外众测之密码找回漏洞 - 先知社区 (aliyun.com) 前言 最近一直在看国外众测的文章,偶尔也逛逛hackerone,发现公布的漏洞中存有不少的逻辑漏洞,毕竟在hackerone ...

  3. 验证码绕过与密码找回漏洞

    一.验证码简介 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apar ...

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

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

  5. 验证码绕过、密码找回漏洞简介

    文章目录 一.验证码的作用 二.验证码绕过的常见姿势 (一)前端验证 (二)验证码无验证 (三)验证码可重复使用 (四)验证码空值绕过 (五)用脚本识别验证码 (六)验证码出现在前端代码中 (七)验证 ...

  6. 逻辑漏洞之验证码绕过、密码找回漏洞

    一.验证码绕过 验证码: 区分用户是人还是计算机的全自动程序 验证码的作用: 1.防止恶意破解密码 2.防止论坛灌水 验证码绕过: 1.识别法(通过编写脚本实现) 2.逻辑绕过法(开发写验证码的校验的 ...

  7. 逻辑漏洞之密码找回总结

    0x00 脑图# 0x01 用户凭证暴力破解# 验证码的位数:4 or 6,有效时间:1min - 15min 验证码爆破防护绕过 纯数字字典生成脚本 Copy import itertools wo ...

  8. 任意密码登录——密码找回漏洞

    警告 请勿使用本文提到的内容违反法律. 本文不提供任何担保. 一.漏洞存在的点 密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字就可以重置密码,导致可以暴力破解. 密码找回凭证可从客户端直接获 ...

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

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

最新文章

  1. 习题8-6 删除字符 (20 分)
  2. STM32中stm32f0xx_flash.icf文件的作用详解!
  3. CAN总线抗干扰的六种解决方案
  4. 经典排序算法 - 堆排序Heap sort
  5. CSS 元素的定位之相对定位 position: relative
  6. jquery remove() empty()
  7. 罕有数据库系统之比拟 - Oracle数据库
  8. python脚本案例
  9. Oracle RMAN完全恢复案例(二)
  10. css属性中如果后面个三个值,那么中间的那个一般代表左右元素的值。
  11. opencv-python API 官网文档
  12. 校园虚拟服务器设备配置规划,校园高性能虚拟化服务器平台建设规划.doc
  13. 大家都是怎么写论文的
  14. rand()和srand()
  15. Wox插件之程序员不安装会死系列
  16. FISCO BCOS迎来开源智能合约编程语言Liquid
  17. win10连着网但网页打不开,代理服务器出现问题,或地址有误
  18. python xgb模型 预测_如何使用XGBoost模型进行时间序列预测
  19. TCP/IP相关的那些事儿
  20. 数据库中心服务器配置,海关总署信息中心南方分中心数据库服务器配置.doc

热门文章

  1. Luogu3387 缩点
  2. 隐函数存在定理3的证明Jacobi_20160503
  3. “丧偶式”恋爱?博士男友每晚12点才回家,要分手吗......
  4. 一样的操作,同样的引入,爆红:can’t resolve symbol
  5. 电脑下载软件用什么软件好?安卓手机下载软件用哪个软件好?IDM下载器说:在做的都是弟弟
  6. 证监会叫停VR等行业跨界定增,福兮祸兮?
  7. 包含新房二手房租房功能的房产小程序开发方案
  8. 新技术加速隐私暴露,如何应对?
  9. excel学习笔记(一)
  10. 键盘按键与键码的对照表的对照表