程序逻辑输入管控不严或者逻辑太复杂,导致程序不能够正常处理或处理错误时,产生的漏洞。常出现于登录注册、密码找回、验证方式、交易支付等。其特点为普遍存在、隐蔽且不固定。
权限绕过漏洞
即越权漏洞,逻辑漏洞的一种,由于服务器完全信任客户端发送请求,忽视用户操作权限,所导致的逻辑漏洞。
水平越权
在相同权限下,不同用户之间可以相互访问,用户权限类型不变,但权限所属ID变化,当系统只校验前端用户权限,而不校验访问数据内容时,即产生水平越权。
垂直越权
低权限用户可以访问高权限用户,权限ID不变,但权限类型变化。当系统不进行权限控制时,恶意用户通过盲打手段,请求高权限参数,即产生垂直越权。
交叉越权
即水平越权和垂直越权同时存在,既改变权限类型,也改变权限ID。
未授权访问
当应用程序或系统认证访问权限不严谨时,可以导致用户直接访问到敏感页面,即产生未授权访问。
防御措施
完善用户权限体系;服务器端多次鉴权;减少使用对象关键字;过滤可控参数;前后端双重验证。
密码找回漏洞
当验证码有效期和请求次数无限制、token验证不加密、身份验证加密算法过弱、验证出现在前端、未校验身份是否一致时,易产生密码找回漏洞。
产生原因
密码找回凭证过弱,可导致暴力破解;
返回凭证无时效性、隐蔽性、次数限制;
邮箱token弱,加密简单;
未验证用户凭证有效性;
重新绑定未校验;
服务器校验为筛查;
用户身份验证透明;
可跳跃找回密码;
本地验证服务器返回信息;
防御措施
使用密码管理工具;
登录时增加验证码;
增加对同一IP地址尝试次数的限制;
“加盐(Salt)”措施,在密码的特定位置插入特定的字符串;
引入额外的符号来增加复杂性;
限制密码重置请求的有效期;
验证码漏洞
当服务器端对验证时间、验证和使用次数没有限制时,可产生该漏洞。
防御措施
增加对验证码限制条件;
增加人机验证措施;
校验token;
支付逻辑漏洞
在系统支付流程中,存在业务逻辑漏洞。
漏洞类型
可直接修改数据包中的支付金额;
没有对购买数量进行负数限制;
请求重放;
其他参数干扰;
防御手段
对传递的金钱,数量等对最后支付金额会产生影响的所有参数做签名。