业务逻辑漏洞

业务逻辑漏洞的定义

业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误。通俗地讲:一个系统的功能太多后,程序开发人员就难以思考全面,对某些地方可能有遗漏,或者未能正常处理,从而导致逻辑漏洞。逻辑漏洞也可以说是程序开发人员的思路错误、程序开发人员的逻辑存在漏洞。

特性

业务逻辑漏洞是非常隐蔽的,它不像SQL注入、XSS跨站脚本攻击、命令执行、文件上传漏洞等有鲜明的标识,自动化扫描器可以定义一系列的规则识别出这些漏洞,而业务逻辑漏洞一般出现在功能(业务流程)上,这是漏洞扫描工具无法识别的。业务逻辑漏洞只出现于业务流程中(模块功能),也就是说,网站的任何部分都有可能存在着逻辑错误漏洞。比如,修改个人资料就完全可能出现逻辑错误漏洞。

常见危害

任意用户密码修改、越权访问、任意用户密码找回、交易支付金额任意修改。

邮箱密码找回

一般网站在找回密码时,会向用户绑定的邮箱发送一封确认的邮件,该邮件中包含有一个url链接,点击这个链接之后,会跳转到设置新密码的界面,注意,访问这个链接的时候,浏览器会带上我们之前登录这个网站的cookie,我们可以重点关注下cookie和这个url中的参数,看是否有我们的账号信息,如果有,尝试修改我们的账号为其他用户的账号,可能会重置其他用户的密码。

权限验证绕过

未授权访问

非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息。尝试将一些敏感的页面链接复制于其他浏览器或其他电脑上进行访问,看是否能访问成功。

越权访问

垂直越权

垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)。

水平越权

水平越权(水平越权是指相同权限的不同用户可以互相访问)。

密保问题密码找回

有些应用在找回密码时,需要验证用户的问题,验证问题答案使用的前端的js脚本验证的,服务器端没有校验,这样我们可以直接禁用浏览器中的JavaScript脚本,就可以绕过这个问题验证。