常见逻辑漏洞
逻辑漏洞是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改,确权访问,密码找回,交易支付金额等功能处。
逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或者代码问题或固有不足,操作上并不影响程序的允许,在逻辑上是顺利执行的。
这种漏洞一般防护手段或设备无法阻止,因为走的是合法流量也没有防御标准。
越权漏洞
越权漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。其与未授权访问有一定差别,目前存在着两种越权操作类型,横向越权操作(水平越权)和纵向越权操作(垂直越权)。
垂直越权
用户abc能对用户admin的信息进行修改、删除、访问等操作(abc和admin用户权限不同)
水平越权
用户abc能对用户xxx的信息进行修改、删除、访问等操作(abc和xxx用户权限相同)
- 容易出现的地方
一般越权漏洞容易出现在权限页面(需要登录的页面)增删改查的地方。比如:改用户的id,用户名就可以获取或修改别人的信息。
未访问授权
授权字面上理解是未获得授权,对于正常的业务来说,有些功能点需要经过登录之后才能进行,那么如果我们通过一些绕过,无需登录也可以完成此类操作,那么便是未授权访问漏洞了。常⻅的未授权漏洞一般分为两种:
- 组件类的,如redis未授权、mongodb未授权等,也是比较常⻅的。对于此类漏洞,可以理解为不需要登录即可执行里面的功能,所以存在未授权漏洞。
- WEB层面的,如某某CMS未授权文件上传、未授权创建账号等。因为可以绕过登录限制进行操作,所以存在未授权访问漏洞。
- 没有对权限进行限制、限制不严格、脆弱性验证
支付逻辑漏洞
一般支付流程
一般利用
- 修改支付价格
- 修改支付状态
- 修改优惠券、积分
- 修改数量,金额
- 修改购买数量
- 修改支付接口
- 多重替换支付
- 重复支付
- 最小额支付
- 值为最大支付问题
- 无限制使用
密码重置
验证码在前端回显,验证码太简单,验证码复用,跳过验证步骤
URL重定向
URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓⻥⻚面的一种漏洞。
防御:
对传入的URL 做有效性的认证,保证该URL 来自于正确的地方(添加referer限制,添加token验证)