发布时间:2023-04-22 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

Web 攻防之业务安全:密码找回安全案例总结

Web 攻防之业务安全:密码找回安全案例总结.

业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全狭义的业务安全指业务系统自有的软件与服务的安全

目录:

密码找回安全案例总结:

密码找回凭证可暴力破解:

密码找回凭证直接返回给客户端:

密码重置凭证已用户账户关联不严:

重新绑定用户手机:

服务端验证码逻辑缺陷:

本地验证服务端的返回信息----修改返回包要过验证:

注册覆盖----已存在用户可被重复注册:

Session 覆盖方式重置其他账号密码:

防范密码找回漏洞的相关措施:

免责声明:

严禁利用本文章中所提到的技术进行非法攻击,否则后果自负,上传者不承担任何责任。

密码找回安全案例总结:

密码找回凭证可暴力破解:

密码找回凭证是指在密码找回过程中,服务器向用户的注册手机或者邮箱中发送验证码或特殊构造的URL等用于用户自证身份的信息,当用户凭证的验证次数未做限制或限制不严可被绕过时,攻击者可以通过暴力破解枚举用户凭证的方式冒充该用户重置密码

密码找回凭证直接返回给客户端:

有些信息系统在密码找回功能的设计上存在逻辑漏洞,可能会将用于用户自证身份的信息的密码找回凭证以各种各样的方式返回到客户端。这样攻击者只要通过在本地抓取数据包,并给其内容加以分析,就能获取到其他用户的密码找回凭证,从而冒充该用户重置密码.

密码找回凭证暴露在请求链接中

第一步:进入某网站登陆处,点击忘记密码,选择通过注册手机找回密码。

第二步:输入手机号码,点击获取验证码,使用 Burp Suite 抓包查看请求的链接中存在的验证码。

第三步:直接输入请求链接中暴露出来的验证码即可修改密码。

网页源代码中隐藏着密保答案

第一步:进入到某网站点击 " 找回密码 " 按钮,再点击 " 网上申诉 " 链接.

第二步:在网上。申诉页面直接查看源代码,发现源代码中不但有密码提示问题,还在 Hide 表里隐藏着问题答案。通过该方法,可获得任意用户修改密码问题答案,从来可以修改其他用户密码.

短信验证码返回给客户端:https://tianyuk.blog.csdn.net/article/details/130023416

密码重置凭证已用户账户关联不严:

有些信息系统在密码找回功能的校验逻辑上存在缺陷,只校验了密码重置凭证是否在数据库中存在,但未严格校验该重置凭证和用户账号之间绑定的关系,这种密码重置凭证与用户账户关联不严的逻辑漏洞,就让攻击者可以通过在数据包中修改用户账号达到重置其他账号密码的目的。

使用自己短信验证码找回别人密码.

第一步:进入到手机号码找回页面,填写自己的手机号码进行密码找回.

第二步:收到验证码后填入验证码和新密码提交,这个时候使用数据抓包工具 Burp Suite  进行抓包,将数据包中的 username 修改为其他账号,post 上交后可以使自己设置的密码登录其他账号。

重新绑定用户手机:

有些信息系统在绑定用户手机或者邮箱的功能上存在越权访问漏洞,攻击者可以利用该漏洞越权绑定其他用户的手机或者邮箱后,再通过正常的密码找回途径重新设置别密码。

重新绑定用户手机

第一步:首先注册一个某邮箱的测试账号,然后会跳转到一个手机绑定的页面上.

第二步:注意此时链接中有个参数为 uid,将 uid 修改为其别人邮箱账号,填入一个你可控的手机号码,获取到验证码,确定后这个目标邮箱已经被越权绑定了密保的手机.

第三步:走正常的密码取回流程,发现这个邮箱多了一个通过手机找回密码的方式,这个手机号码就是刚刚绑定的手机号码.

第四步:获取验证码并输入新的密码,最终成功重置了新目标账号的密码.

服务端验证码逻辑缺陷:

有些信息系统的服务端验证逻辑存在漏洞,攻击者可以通过删除数据包中的某些参数修改邮件发送地址或者跳过选择找回方式和身份验证的步骤,可以直接进入重置密码页面,成功重置其他人的密码。

删除参数绕过验证

第一步:某邮箱系统可以通过密码提示问题找回密码.

第二步:首先随机填写密码答案,然后进入下一步抓包后将问题答案的整个字段都删除再提交.

第三步:因服务端验证逻辑存在缺陷,无法获取到问题答案的情况下,直接通过了验证密码重置成功.

邮箱地址可被操控

第一步:有一些网站可以通过注册时填写的邮箱来找回密码,但防止网络不稳定等因素造成邮件发送失败,找回密码页面提供了重新发送邮件的功能。

第二步:点击重新发送邮件,然后抓包 Burp Suite 工具进行拦截请求,将数据包中的邮件地址改为自己测试的邮箱。

第三步:点击进入自己测试的邮箱,点击链接密码重置成功。

身份验证步骤可被绕过

第一步:进入某网站的密码找回功能,输入账号和验证码.

第二步:确定后,直接访问 http://**.***.com.cn/reset/pass.do 即可跳过选择找回方式和身份认证的过程直接,进入重置密码页面.

本地验证服务端的返回信息----修改返回包要过验证:

有些信息系统在密码找回功能的设计上存在逻辑漏洞,攻击者只需要抓取服务端的返回包,并修改其中的部分参数即可,跳过验证步骤直接进入密码重置页面。

修改返回包绕过验证:https://tianyuk.blog.csdn.net/article/details/130057199

注册覆盖----已存在用户可被重复注册:

有些信息系统的用户注册功能没有严格校验已存在的用户账号,导致攻击者可以通过反复注册其他用户账号的方式重置其他账号的密码.

第一步:进入某网站,点击用户注册,输入用户名,在鼠标离开输入框后会提示该账号已被注册。

第二步:输入一个未注册的用户名并提交表单,同时用抓包 Burp Suite 工具拦截数据包,并将 username 参数值修改为 admin

第三步:此时 admin 用户的密码被重复注册的方式修改了,但原用户的所有信息却没有修改,也就是说这样攻击者获取了用户的所以信息,包括:姓名,身份证,手机号,等信息.

Session 覆盖方式重置其他账号密码:

有些服务器密码找回功能的服务端校验存在漏洞,攻击者使用密码找回链接重置密码时,通过 Session 覆盖的方式成功重置其他账号的密码。

第一步:使用自己的账号进行密码找回.

第二步:收到邮件后先不要点击链接.

第三步:在同一个浏览器内打开网站再次进入密码找回页面,输入其他人的账号。

第四步:点击找回密码邮件后,停止在该页面。

第五步:在同一个浏览器里打开第二步中自己邮件中收到的链接,然后设置一个新的密码。

第六步:使用新设置的密码成功登陆进了别人的账号.

防范密码找回漏洞的相关措施:

(1)在密码找回功能设计时对用户的凭证验证次数和频率进行限制,防止攻击者对用户凭证的暴力枚举攻击.

(2)对密码找回的各个环节进行梳理,记录分析所有交互数据,避免密码找回凭证等敏感信息直接返回给客户端.

(3)对服务端密码重置 Token 的生成算法进行审计,避免使用容易被攻击者破解的简单算法.

(4)密码重置凭证应与账户严格绑定,并设置有效的时间,避免攻击者通过修改账户 ID 的方式重置其他账号的密码.

(5)对客户端传入的数据要进行严格的校验,手机号,邮箱地址等重要信息应和后台数据中已存储的信息进行核对,不应从客户端传入的参数中直接取用,避免攻击者通过篡改传入的数据方式重置其他账号的密码.

(6)对用户注册,手机邮箱绑定等业务逻辑进行审计,避免攻击者通过用户重复注册和越权绑定等漏洞,间接重置其他账号密码.

学习的书籍:Web 攻防之业务安全实战指南.