https://bbs.ichunqiu.com/thread-59325-1-1.html

前言

任意用户密码重置漏洞在渗透测试中属于逻辑漏洞的一种,形成的原因是开发者在开发时没有对各项参数进行准确的校验从而导致此漏洞的诞生。

挖掘方法

01、验证码不失效

测试方法:输入目标手机号,获取验证码随意输入验证码1234点击下一步,拦截数据包进行爆破,通关枚举找到真实正确的验证码。

总结:找回密码的时候获取的验证码缺少时间限制,仅判断了验证码是否正确,未判断验证码是否过期。

02、验证码直接返回

测试方法:输入目标手机号,点击获取验证码,并观察返回包即可,在返回包中得到目标手机号获取的验证码,进而完成验证,重置密码成功。

总结:由于获取的验证码由客户端生成,并直接返回在Response内容里面。

03、验证码未绑定用户

测试方法:输入自己的手机号接收验证码,提交时拦截数据包,把自己的改成他人的手机号进行测试,成功重置他人密码。

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

04、修改接收的手机或邮箱

测试方法:输入用户名点击获取验证码,修改接收验证码的手机号为自己的手机号码,后使用自己手机接收到的验证码提交进行验证。

总结:用户名,手机号,验证码三者没有统一进行验证,仅判断了三者中的手机号(邮箱),和验证码是否匹配正确,如果正确则判断成功并进入下一流程。

05、本地验证的绕过

测试方法:输入错误验证码,修改返回包,把错误改成正确,即可绕过验证步骤,最终重置用户密码。

总结:客户端在本地进行验证码是否正确的判断,而该判断的结果也可以在本地修改,最终导致欺骗客户端,误以为输入了正确的验证码。

06、跳过验证步骤

测试方法:先正常修改密码走一遍,记录通过验证码后输入密码的页面信息,如url,再重新输入用户名,在验证码页面输入url跳转到修改密码页面进行修改。

总结:对修改密码的步骤,没有做校验,导致可以直接输入最终修改密码的网址进行密码修改。

07、未校验用户字段的值

测试方法:使用自己的用户信息进行验证,到修改密码处拦截数据包,修改数据包中的用户信息,导致密码重置成功。

总结:在整个重置密码的流程中,只对验证码和手机号做了校验,未对后面设置新密码的用户身份做判断,导致在最后一步通过修改用户身份来重置他人密码。

08、修改密码处id可替换

测试方法:个人主页,修改自己的密码,抓取数据包,替换数据包中用户对应的id值,即可修改他人密码。

总结:修改密码的时候,没有对原密码进行判断,且仅根据id的值进行判断

09、Cookie值替换

测试方法:输入目标账户,点击下一步,可以获取目标对应得cookie信息,再正常修改账号密码,到最后一步得时候,替换目标得Cookie,导致任意密码重置成功。

总结:重置密码走到最后一步的时候仅判断唯一的用户标识Cookie是否存在,并没有判断该Cookie有没有通过重置密码过程的验证,导致可替换Cookie替换他人的密码。

10、修改信息时替换字段值

测试方法:保存个人信息时,拦截数据包,发现手机号的参数为mobieNo,通过页面源代码发现保存用户名的为login,修改mobieNo为login,手机号为他人用户名,发送数据包他人密码和自己一样。

总结:在保存个人信息时,用户的密码也被当做字符按执行了,而且是根据参数login隐藏函数执行,这样就导致了修改隐藏login的值修改特任密码。

11、正确验证码修改他人密码

测试方法:正常步骤,点击忘记密码,输入用户id获取邮箱,再返回上一步,输入受害者id,输入前者的验证码点击下一步,发现成功跳转到修改密码界面。

总结: 此问题出现原因在于验证码没有跟账号做绑定,验证时只做了验证码是否有效的判断。

12、参数隐藏

测试方法:输入用户名时抓包,复制用户参数,输入正确密保跳转到修改密码页面,输入密码进行修改拦截数据包发现用户参数不可见,在密码前面添加用户参数,并把参数值修改为他人参数值,即可修改他人密码。

总结:隐写并不能解决漏洞本身问题。

案例分享

1、某cms任意密码重置漏洞复现

先注册两个账号,分别为test1和test2

登录test1账号,设置修改密码时的问题

退出账号,输入test1账号,输入设置的密保问题

设置新密码,点击完成时抓包发现用户ID

修改test1为test2,发送数据包发现修改成功,登录test2账号成功

2、参数隐藏

注册一个账号

这里我注册的账号名为:xxx

注销登录,选择密码找回

输入用户名xxx,点击下一步的时候利用burp工具进行拦截数据包

这里需要注意下数据包中的&TxtUserName=xxx参数

跳转到密码修改页面,进行修改密码

点击修改密码的同时,使用burp抓包

这里看到在数据包中并未显示用户的id,盲猜是隐藏了,下一步在数据包&TxtPassword=12345678前面添加:&TxtUserName=xxx,并把xxx修改成管理员用户admin

显示修改成功,登录下试试,登录成功

逻辑漏洞 - 密码重置相关推荐

  1. 【逻辑漏洞技巧拓展】————3、逻辑漏洞之密码重置

    密码找回验证条件可社工 1 只验证帐号是否存在即可修改密码 2 只验证帐号与邮箱地址是否匹配即可修改密码 3 只验证帐号与手机号是否匹配即可修改密码 密码修改页面可预测 案例介绍: 问题出现在忘记密码 ...

  2. 网络信息安全笔记—逻辑漏洞

    逻辑漏洞简介 ​逻辑漏洞是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性.一般出现在密码修改,越权访问,密码找回,交易支付金额等功能处.​ 逻辑漏洞的破坏方式并非是向程序添加破坏内 ...

  3. XSS漏洞利用---PHPMyWind 任意密码重置漏洞

    [漏洞详情] 1.PHPMyWind是一套基于PHP和MySQL并符合W3C标准的企业网站建设解决方案,拥有着较大的用户群体(根据PHPMyWind官网介绍,已下载超15万次),受影响的版本是5.3- ...

  4. 【逻辑漏洞技巧拓展】————5、密码逻辑漏洞

    在前段时间的这两周时间里,爆出了各种大网站数据库泄漏的问题(这个好像跟今天的主题没什么关系),所以我今天就来讨论一下在平时的渗透过程中密码那些事情(果然跟数据库泄漏没什么): 其实密码导致的漏洞在漏洞 ...

  5. TP-Link TL-WR840N v6.20(EU) 密码重置漏洞

    TP-Link TL-WR840N v6.20(EU) 密码重置漏洞 (CVE-2021-46122) #TPLINK.#CVE.#crash.#rce 最后修改时间:2022.04.18. 故事 寒 ...

  6. 任意用户密码重置(六):应答中存在影响后续逻辑的状态参数

    前言 在逻辑漏洞中,任意用户密码重置最为常见,可能出现在新用户注册页面,也可能是用户登录后重置密码的页面,或者用户忘记密码时的密码找回页面,其中,密码找回功能是重灾区.我把日常渗透过程中遇到的案例作了 ...

  7. 业务逻辑漏洞--注册-登录-改密码页面总结

    SRC漏洞挖掘过程中遇到登录框时,总是感觉自己测试不完全,东一榔头西一棒子,想起什么来测什么. 感觉这样不太行,显得不专业,于是乎总结一下,在以后的测试过程中可以作为笔记提示. 以下按照顺序测试: 注 ...

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

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

  9. 记一次任意用户密码重置漏洞(session覆盖)

    首先,注册用户(两个用户),我用我的小号,大号进行注册,过程方便就先省略 接下来两个号分别登录,登录完退出 (强迫症) 然后就去找密码重置的界面了 第一个是被重置的帐户 然后分别发送邮件 注意!:第一 ...

最新文章

  1. 3月最新!ESI世界大学排名:371所内地高校上榜!
  2. 基于springboot实现高校学生健康档案管理系统
  3. 洛谷P2501数字序列 动态规划
  4. linux 源码 网络驱动,Linux网络驱动源码分析(一)
  5. mybatis plus按时间段查询_你应该知道的这些Mybatis-Plus使用技巧(小结)
  6. [转]小品:宋江同志在梁山泊招安动员大会上的讲话
  7. HDU1492/The number of divisors(约数) about Humble Numbers
  8. [转]BT1120接口及协议
  9. pb语言是什么计算机语言,pb编程语言排行榜_世界编程语言排行榜 搜狗百科
  10. 【工具使用】无法登陆bing搜索引擎
  11. 创建模式之工厂、工厂方法、抽象工厂与建造者(builder)
  12. 解决方案 | 解决Adobe Acrobat 2020安装报错的一些问题,如无法打开键
  13. 计算机基础教学模式,浅谈中技计算机基础教学模式
  14. android权限的最佳运用
  15. Blender摄像机环绕运动、动画渲染、视频合成
  16. Android4: Write Storage权限问题
  17. 数字ic2020海思提前批
  18. activity或者flowable会签任务的事例
  19. 手把手教你如何安装java环境_手把手教你安装JAVA环境
  20. 易语言执行mysql命令行_易语言教程之MySQL[3]执行SQL语句

热门文章

  1. android切换默认应用_如何在Android上设置默认应用
  2. elasticsearch面试常问问题_java面试题汇总
  3. 北京互联网文化VS深圳互联网文化
  4. CTFHub-Web-文件上传
  5. 云南大学计算机考研资料汇总
  6. HOOPS Shell详解
  7. cqyz oj | 化装晚会 | 二分搜索 | 贪心
  8. dokuwiki中文linux,CentOS 7 下搭建 Dokuwiki
  9. confluence wiki如何部署
  10. 百度地图  全景控件