Web应用安全测试-权限篡改

Web应用安全测试-权限篡改

任意用户密码修改/重置

漏洞描述:

        可通过篡改用户名或ID、暴力破解验证码等方式修改/重置任意账户的密码。

测试方法:

        密码修改的步骤一般是先校验用户原始密码是否正确,再让用户输入新密码。修改密码机制绕过方式大概有以下三种:

  1. 如果输入新密码的接口可以直接访问,那么在未知原始密码的的情况下即可直接修改密码,通常知道了他人的用户名即可任意修改他人的密码。
  2. 如果系统未校验修改密码的用户身份,那么在提交修改密码请求时,攻击者通过输入密码,将用户名或者用户ID修改为其他人的,即可成功修改他人的密码。
  3. 当修改密码时系统需要电子邮件或者手机短信确认,而应用程序未校验用户输入的邮箱和手机号,那么攻击者通过填写自己的邮箱或手机号接收修改密码的链接和验证码,以此修改他人的密码。

        密码重置机制绕过攻击方式主要有以下两种:

  1. 通过正常手段获取重置密码的链接,猜解链接的组成结构和内容(如用户名或者时间戳的MD5值)。在得知他人邮箱的情况下,构造重置他人密码的链接。
  2. 在得知他人手机号的情况下,通过穷举手机验证码重置他人的密码。

风险分析:

        密码修改功能常采用分步骤方式来实现,攻击者在未知原始密码的情况下绕过某些检验步骤修改用户密码。

        重置密码过程一般是首先验证注册的邮箱或者手机号,获取重置密码的链接(一般会包含一串唯一的字符串)或者验证码,然后访问重置密码链接或者输入验证码,最后输入新密码。密码重置机制绕过攻击是指在未知他人的重置密码链接或手机验证码的情况下,通过构造重置密码链接或穷举手机验证码的方式直接重置他人的密码。

风险等级:

高危:其它用户的密码被修改/重置成功

修复方案:

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

注意事项:暂无

SSO认证缺陷

漏洞描述:SSO认证存在缺陷,可越权登录他人账户。

测试方法:建议从以下两个方向进行测试:

1、信息传输缺乏安全保证

        SSO认证通信过程中大多数采用明文形式传送敏感信息,这些信息很容易被窃取,致使重要信息泄露。另外,在通信过程中大多数方案也没有对关键信息进行签名,容易遭到伪装攻击。

2、Web服务的安全缺陷

        由于单点登录基本上是基于Web服务实现的,所以也不可避免的存在Web服务的安全缺陷,如跨站脚本攻击、越权攻击等。

风险分析:因为只需要登录一次,所有的授权的应用系统都可以访问,可能导致一些很重要的信息泄露。

风险等级:

高危:可导致用户在单点登录之后任意登录其他系统和其他用户账号信息

修复方案:建议从以下几个方面进行防御:

  1. 建议在不影响业务的前提下,使用HTTPS协议传输
  2. 严格校验SSO认证过程中的用户身份
  3. 过滤用户传入的参数,对特殊符号进行转义或屏蔽。
  4. </
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值