常见逻辑漏洞

​ 逻辑漏洞是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改,确权访问,密码找回,交易支付金额等功能处。

​ 逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或者代码问题或固有不足,操作上并不影响程序的允许,在逻辑上是顺利执行的。

​ 这种漏洞一般防护手段或设备无法阻止,因为走的是合法流量也没有防御标准。

越权漏洞

越权漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。其与未授权访问有一定差别,目前存在着两种越权操作类型,横向越权操作(水平越权)和纵向越权操作(垂直越权)。

垂直越权

用户abc能对用户admin的信息进行修改、删除、访问等操作(abc和admin用户权限不同)

水平越权

用户abc能对用户xxx的信息进行修改、删除、访问等操作(abc和xxx用户权限相同)

  • 容易出现的地方

一般越权漏洞容易出现在权限页面(需要登录的页面)增删改查的地方。比如:改用户的id,用户名就可以获取或修改别人的信息。

未访问授权

授权字面上理解是未获得授权,对于正常的业务来说,有些功能点需要经过登录之后才能进行,那么如果我们通过一些绕过,无需登录也可以完成此类操作,那么便是未授权访问漏洞了。常⻅的未授权漏洞一般分为两种:

  1. 组件类的,如redis未授权、mongodb未授权等,也是比较常⻅的。对于此类漏洞,可以理解为不需要登录即可执行里面的功能,所以存在未授权漏洞。
  2. WEB层面的,如某某CMS未授权文件上传、未授权创建账号等。因为可以绕过登录限制进行操作,所以存在未授权访问漏洞。
  • 没有对权限进行限制、限制不严格、脆弱性验证

支付逻辑漏洞

一般支付流程

image-20230421174134339

一般利用

  1. 修改支付价格
  2. 修改支付状态
  3. 修改优惠券、积分
    1. 修改数量,金额
  4. 修改购买数量
  5. 修改支付接口
  6. 多重替换支付
  7. 重复支付
  8. 最小额支付
  9. 值为最大支付问题
  10. 无限制使用

密码重置

image-20230421174424391

验证码在前端回显,验证码太简单,验证码复用,跳过验证步骤

URL重定向

URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓⻥⻚面的一种漏洞。

防御:

对传入的URL 做有效性的认证,保证该URL 来自于正确的地方(添加referer限制,添加token验证)